Protocol: | pserver | User: | anonymous |
Machine: | crossfire.cvs.sourceforge.net | CVSROOT: | /cvsroot/crossfire |
Filename: libproto.h | |||
Revision 1.99 | ryo_saeba | 2006/08/26 12:56:22 | +0 -2 |
Remove obsolete event system. | |||
Show difference between Revision 1.98 and 1.99 | |||
Revision 1.98 | qal21 | 2006/08/25 22:30:15 | +1 -0 |
Make generators work properly with multi-tile objects. | |||
Show difference between Revision 1.97 and 1.98 | |||
Revision 1.97 | ryo_saeba | 2006/08/19 15:22:21 | +1 -0 |
Fix for bug #1460251 (Big monsters generated by generators broken). Tweaks to object dumping. | |||
Show difference between Revision 1.96 and 1.97 | |||
Revision 1.96 | tchize | 2006/07/02 10:32:35 | +1 -1 |
more progress in unit testing, marked points of interrest in code | |||
Show difference between Revision 1.95 and 1.96 | |||
Revision 1.95 | tchize | 2006/06/03 13:28:08 | +4 -22 |
made a few methods in object.c static and created empty checks. Methods in object.c that weren't used anywhere else were made static. Methods in object.c that weren't static where assigned an empty test in check_object.c | |||
Show difference between Revision 1.94 and 1.95 | |||
Revision 1.94 | akirschbaum | 2006/05/21 07:22:29 | +0 -2 |
Declare some functions as "static". | |||
Show difference between Revision 1.93 and 1.94 | |||
Revision 1.93 | ryo_saeba | 2006/05/05 04:47:40 | +1 -1 |
Third and last part of patch #1453869 courtesy Stefan Huehner (shuehner) | |||
Show difference between Revision 1.92 and 1.93 | |||
Revision 1.92 | tchize | 2006/04/06 16:18:35 | +16 -8 |
finished common/arch.c unit test, fixed a few bugs, moved function around and renamed other | |||
Show difference between Revision 1.91 and 1.92 | |||
Revision 1.91 | ryo_saeba | 2006/03/18 11:15:24 | +3 -5 |
Use const when possible. Patch courtesy Stefan Huehner. | |||
Show difference between Revision 1.90 and 1.91 | |||
Revision 1.90 | ryo_saeba | 2006/03/18 09:05:32 | +5 -6 |
Massive cleaning of code. Shouldn't be any functional change. | |||
Show difference between Revision 1.89 and 1.90 | |||
Revision 1.89 | akirschbaum | 2006/02/17 15:29:47 | +2 -6 |
Apply patch #1433271 (code-cleanup) by Stefan Huehner: Add const and static. | |||
Show difference between Revision 1.88 and 1.89 | |||
Revision 1.88 | akirschbaum | 2006/02/10 17:59:26 | +1 -2 |
Apply slightly modified patch #1428309 (code-cleanup: const, static) by Stefan Huehner: add const/static to functions/variables. Remove some type casts. | |||
Show difference between Revision 1.87 and 1.88 | |||
Revision 1.87 | akirschbaum | 2006/02/08 18:48:36 | +72 -69 |
Apply patch #1427979 (code-cleanup: add const, fix warnings) by Stefan Huehner. | |||
Show difference between Revision 1.86 and 1.87 | |||
Revision 1.86 | akirschbaum | 2006/02/08 17:53:19 | +1 -0 |
Make create food spell work for all FOOD/DRINK objects. It used to fail for objects where another object with the same name but type POISON does exist. | |||
Show difference between Revision 1.85 and 1.86 | |||
Revision 1.85 | cavesomething | 2006/02/07 19:52:58 | +1 -0 |
add arrest command, and regional jails | |||
Show difference between Revision 1.84 and 1.85 | |||
Revision 1.84 | ryo_saeba | 2005/11/27 08:16:46 | +1 -1 |
Add a filter to skills command | |||
Show difference between Revision 1.83 and 1.84 | |||
Revision 1.83 | mwedel | 2005/11/16 02:16:00 | +7 -7 |
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.82 and 1.83 | |||
Revision 1.82 | akirschbaum | 2005/11/01 04:08:17 | +1 -0 |
Add new function object_get_env_recursive() to find the outermost environment object for a given object. | |||
Show difference between Revision 1.81 and 1.82 | |||
Revision 1.81 | akirschbaum | 2005/10/31 15:23:00 | +1 -1 |
Fix bug #1102975 (Bronze items not keeping their + in alchemy): the problem was that a formula for full_helmet did exist but not for b_full_helmet. Since both helmet's names are "full helmet", the recipe was selected even if using the ingredient b_full_helmet. This fix adds new formulae for alternative archetypes with the same name as the base object, and makes the server code select the matching formula from multiple arch names in the "arch" field. | |||
Show difference between Revision 1.80 and 1.81 | |||
Revision 1.80 | akirschbaum | 2005/10/24 15:48:15 | +1 -2 |
Code improvements: common/image.c: Declare some variables and functions as static or const; add safeguards while loading config files; remove support for numeric face names (no active archetype or map does use it); in free_all_images() deallocate memory allocated for smoothing. crossedit/xutil.c: Remove assignment to nrofpixmaps since ReadBmapNames() already sets this variable. include/{global.h, libproto.h, loader.h}: Remove now static variables and functions. | |||
Show difference between Revision 1.79 and 1.80 | |||
Revision 1.79 | cavesomething | 2005/10/21 14:03:24 | +1 -0 |
make shops check if a player can afford all items, before buying any of them | |||
Show difference between Revision 1.78 and 1.79 | |||
Revision 1.78 | gros | 2005/10/18 11:54:31 | +12 -15 |
Upgrade of the Crossfire server to version 2.0 of the plugin interface. Upgrade of the Python plugin to version 2.0 of the plugin interface. Gros - 18/10/05 | |||
Show difference between Revision 1.77 and 1.78 | |||
Revision 1.77 | qal21 | 2005/10/17 08:08:27 | +1 -0 |
Add convenience function for string replacement (Which I plan to use soon) | |||
Show difference between Revision 1.76 and 1.77 | |||
Revision 1.76 | qal21 | 2005/10/16 17:51:21 | +1 -0 |
Add support for random template maps (still need to document, and still need to add support for template maps created from non-random templates) | |||
Show difference between Revision 1.75 and 1.76 | |||
Revision 1.75 | akirschbaum | 2005/10/07 18:35:33 | +1 -0 |
Prevent objects from losing inventory when thrown. include/libproto.h, common/object.c: Add new parameter "free_inventory" to free_object(). Is set, free inventory as well instead of dropping it on the ground. common/object.c: In get_split_ob() prevent inventory of splitted object to be dropped. | |||
Show difference between Revision 1.74 and 1.75 | |||
Revision 1.74 | akirschbaum | 2005/10/07 12:54:48 | +2 -2 |
common/{arch.c, object.c}, crossedit/{Attr.c, Defines.h, Edit.c}, include/libproto.h, server/{plugins.c, time.c}: Rename functions with mixed-case names to lower case only. crossedit/Defines.h: Remove prototypes for nonexisting functions. | |||
Show difference between Revision 1.73 and 1.74 | |||
Revision 1.73 | cavesomething | 2005/10/02 22:29:41 | +2 -0 |
add support for specialised shops | |||
Show difference between Revision 1.72 and 1.73 | |||
Revision 1.72 | ryo_saeba | 2005/10/01 11:36:35 | +4 -5 |
Clean some compilation warnings. | |||
Show difference between Revision 1.71 and 1.72 | |||
Revision 1.71 | ryo_saeba | 2005/09/25 13:36:02 | +13 -6 |
Changed quest system, needs tweaks and fixes. | |||
Show difference between Revision 1.70 and 1.71 | |||
Revision 1.70 | mwedel | 2005/08/23 00:42:58 | +15 -11 |
Apply patch 1200555 - addition of key/value lists which allows arbitrary storing of data in objects - see doc/Developers/key-value for more information --- loader.l, loader.c: Add add_key_value() function which parses the unknown line in the object/archetype. Update get_ob_diff() to make differences for the key/value lists. common/object.c: Add functions for properly comparing the key/value lists, setting and getting the vaues, clearing values upon freeing of object, etc. doc/Developers/Makefile.am: Add key-value file. doc/Developers/key-value: Documentation of this feature. include/libproto.h: Rebuilt include/object.h: Addition of key_value struct, addition of key_values field to object. MSW 2005-08-22 | |||
Show difference between Revision 1.69 and 1.70 | |||
Revision 1.69 | ryo_saeba | 2005/08/12 08:46:34 | +10 -10 |
Fields changed from char* to const char*, cleanup. | |||
Show difference between Revision 1.68 and 1.69 | |||
Revision 1.68 | ryo_saeba | 2005/08/12 03:18:59 | +12 -12 |
Use const char* instead of char* when possible | |||
Show difference between Revision 1.67 and 1.68 | |||
Revision 1.67 | ryo_saeba | 2005/07/17 06:00:04 | +6 -6 |
Use const char* instead of char* when possible. Removed unused variables from weather code. | |||
Show difference between Revision 1.66 and 1.67 | |||
Revision 1.66 | ryo_saeba | 2005/07/15 08:51:50 | +0 -42 |
Glue cleaning. New plugin function. | |||
Show difference between Revision 1.65 and 1.66 | |||
Revision 1.65 | ryo_saeba | 2005/07/14 11:21:31 | +9 -0 |
Quest handling | |||
Show difference between Revision 1.64 and 1.65 | |||
Revision 1.64 | tchize | 2005/05/29 10:37:53 | +2 -0 |
MOTD now splitted in 3 files: rules, news and motd. They are sent on connection to client in this exact order. | |||
Show difference between Revision 1.63 and 1.64 | |||
Revision 1.63 | tchize | 2005/05/06 16:10:15 | +2 -0 |
added a new command to identify the type of text send to client. media tags can be included inside them. Those text types include scrolls, books, message of the day, signs, aso. See protocol doc for details | |||
Show difference between Revision 1.62 and 1.63 | |||
Revision 1.62 | ryo_saeba | 2005/05/03 13:31:04 | +12 -12 |
Use const char* instead of char* when possible | |||
Show difference between Revision 1.61 and 1.62 | |||
Revision 1.61 | mwedel | 2005/04/16 23:25:53 | +14 -13 |
Various minor bugfixes. common/los.c: Patch to fix negative lighting. Use isqrt instead of sqrt, so we only want integer values anyways. include/libproto.h, include/sproto.h: Rebuilt as there were some improperly matching prototypes. random_maps/rogue_layout.c: Replace sqrt with isqrt calls. server/c_misc.c: Make name_cmp() a static declaration so it won't be put in the sproto.h file. server/init.c: Remove /* within comment string. server/monster.c: Change sqrt to isqrt MSW 2005-04-16 | |||
Show difference between Revision 1.60 and 1.61 | |||
Revision 1.60 | ryo_saeba | 2005/04/14 14:15:39 | +5 -5 |
Fix a few things, use const char* instead of char* when possible | |||
Show difference between Revision 1.59 and 1.60 | |||
Revision 1.59 | cavesomething | 2005/03/23 15:34:39 | +3 -0 |
allow who command to take regions as arguments, if a region is given as an argument then only the players in the region are shown. Partial region names can be used also. Calling who on its own shows everyone that was shown before. | |||
Show difference between Revision 1.58 and 1.59 | |||
Revision 1.58 | ryo_saeba | 2005/03/15 15:06:20 | +9 -0 |
Apply patch #1145089 by cavesomething for region support | |||
Show difference between Revision 1.57 and 1.58 | |||
Revision 1.57 | akirschbaum | 2005/02/20 14:43:10 | +1 -1 |
common/object.c, include/libproto.h: change nrof parameter of get_split_ob to uint32 type. server/c_object.c, include/sproto.h: change nrof parameter of drop_object to uint32 type. plugin/{plugin_python.c, include/plugin_python.h}, plugin_animator/{plugin_animator.c, include/plugin_animator.h}, server/{apply.c, attack.c, gods.c, monster.c, player.c, skills.c, time.c, timers.c}: Change type of CFParm.Value[5] and StackParm1[] to uint32 to be able to pass an "nrof" value. | |||
Show difference between Revision 1.56 and 1.57 | |||
Revision 1.56 | ryo_saeba | 2004/04/28 17:04:09 | +1 -1 |
Change char* to const char*, value shouldn't be changed | |||
Show difference between Revision 1.55 and 1.56 | |||
Revision 1.55 | mwedel | 2004/04/16 01:23:42 | +2 -14 |
common/map.c: Change blocked_link() to take a map parameter. Also, change code in blocked_link() to assume that the caller has set up appropriate map and coordinates related to tiling (in all functions that currently call blocked_link, this is the case) include/libproto.h: Rebuilt. server/move.c, server/player.c: update call to blocked_link to include the map. MSW 2004-04-15 | |||
Show difference between Revision 1.54 and 1.55 | |||
Revision 1.54 | ryo_saeba | 2004/03/26 16:41:43 | +1 -1 |
Const specifiers | |||
Show difference between Revision 1.53 and 1.54 | |||
Revision 1.53 | ryo_saeba | 2004/02/27 17:00:26 | +4 -4 |
Some warnings cleaning. | |||
Show difference between Revision 1.52 and 1.53 | |||
Revision 1.52 | mwedel | 2004/02/11 02:09:23 | +14 -2 |
common/Makefile.am: Clean up proto - lex seems to toss some new symbols in now days. common/map.c, common/object.c, server/player.c, socket/item.c, socket/request.c: change parameters of get_map_from_coord from int to sint16, so the op->x,op->y can get passed directly in. Update callers of this function. lib/archetypes: Add damned 1 to the shop floors. server/pets.c: Fix problem with big (multisquare) pets following the owner across tiled map boundaries. socket/item.c: Fix problem of players being able to see everything within containers by just looking at them. MSW 2004-02-10 | |||
Show difference between Revision 1.51 and 1.52 | |||
Revision 1.51 | mwedel | 2003/11/09 23:39:50 | +2 -1 |
bulk of this is to fix exp loss when changing gods if you have more than 2 billion exp, removal of spells when you switch levels, and not giving you all new spells when you switch religions. -- common/living.c: Update exp functions to be fully 64 bit aware. Don't take away from player total exp if SK_SUBTRACT_SKILL_EXP is passed in. common/utils.c: Add 64 bit version of random_roll(), called random_roll64() lib/treasures: Make indentation consistent for some treasures. server/apply.c: Use the FLAG_STARTEQUIP to denote god given spells, instead of using special prayer markers. This simplifies the spell learning and removal code. server/gods.c: Make exp loss for changing religions 64 bit compliant. Fix become_follower() so that it doesn't give all the new gods special spells if you switch religions. Fix code so that it properly removes all special prayers from previous god, and also print out message on what spells you lost. Don't set the prayer skill as applied in various areas - this results in two skills being applied, which isn't proper. MSW 2003-11-09 | |||
Show difference between Revision 1.50 and 1.51 | |||
Revision 1.50 | temitchell | 2003/10/26 21:44:33 | +1 -0 |
- Add TRIGGER_MARKER object (type 52) a MARKER that can activated by a connected trigger. | |||
Show difference between Revision 1.49 and 1.50 | |||
Revision 1.49 | mwedel | 2003/10/26 01:56:57 | +2 -1 |
common/glue.c, common/object.c, common/player.c, include/funcpoint.h, server/init.c, server/monster.c, server/shop.c, server/skill_util.c: add find_skill_by_number() function - this replaces find_skill. Locate new function in skill_util.c, which is more a proper place than common/player.c - this change necessitated adding glue function pointers so the other common files can call it. server/spell_effect.c: Fix cast_heal() so if the spell is not one that heals hit points, don't process the code that checks for that and sets a false success value. socket/metaserver.c: Clean up formatting - no code changes. MSW 2003-10-25 | |||
Show difference between Revision 1.48 and 1.49 | |||
Revision 1.48 | mwedel | 2003/09/26 00:46:09 | +10 -22 |
common/living.c, include/libproto.h: Update some functions to take 64 bit int values for exp usage. MSW 2003-09-25 | |||
Show difference between Revision 1.47 and 1.48 | |||
Revision 1.47 | mwedel | 2003/09/13 00:01:33 | +7 -3 |
Updated code for skill + spell code. skills and spells are now objects. tuning these now means changing the archetypes. New spells can now be added just by making a new archetype. Lots of code cleanup also done. MSW 2003-09-12 | |||
Show difference between Revision 1.46 and 1.47 | |||
Revision 1.46 | tchize | 2003/09/03 07:25:06 | +3 -0 |
generator may now use their inventory as a basis to generated items instead of the other_arch field. Will allow more fine tuned generators | |||
Show difference between Revision 1.45 and 1.46 | |||
Revision 1.45 | tchize | 2003/06/30 14:14:13 | +1 -0 |
Various code optimisations to help preventing peeks at maploads. Includes: * rewritten saving of objects, removed needs for sprintf calls and most strlen calls * modified map structures for saving of a very small amount of additionnal precalculated datas for weather * added FAST_xxx macros for fast string manipulations | |||
Show difference between Revision 1.44 and 1.45 | |||
Revision 1.44 | gros | 2003/06/26 06:27:43 | +2 -0 |
Re-implemented the event hooks in objects as a dynamically linked list, instead of a static table. | |||
Show difference between Revision 1.43 and 1.44 | |||
Revision 1.43 | tchize | 2003/06/19 05:59:28 | +16 -2 |
Added support for smoothing to the client. This will allow (i hope) better graphical results while using very little bandwidth overhead. Changes done follows: - Added protocol command MapExtendedInfos and smooth commands to server - Added a SetUp paramater in protocol for activating smoothing (disabled by default) or more general Extended map infos - Added file lib/smooth a text file containing some smoothing info a client might ask the server about. - Changed loader.l to be able to mark an object as 'smoothed' in archetypes (the smoothlevel parameter) and rebuild loader.c accordingly - Changed lib/Makefile.am to install lib/smooth file in shared folder - Rebuild the Makefiles.am and the Configure script (using autogen.sh) To be able to smooth, A client commit (the common part+ the gtk part) will follow and an archetypes commit will also follow. I will also detail changes to the protocol within a few days Server has been tested with older client to check backward compatibility | |||
Show difference between Revision 1.42 and 1.43 | |||
Revision 1.42 | mwedel | 2003/03/19 02:04:50 | +1 -1 |
common/anim.c: Pass direction to animate_object() - needed for player animations as player's facing may not match direction. crossedit/Attr.c, server/main.c, server/time.c: Update calls to animate_object() include/libproto.h: rebuilt include/newserver.h, plugin_animator/animator_box.c, socket/init.c, socket/request.c: Remove newanim field from socket structure - not needed - how to animate is determined by object, not by socket. server/move.c: Add check to P_OUT_OF_MAP in teleport function. server/player.c: change move_player to call animate_object, so it gets full power of functionality it supports instead of 4 way hardcode animation information. server/spell_effect.c: When altars are consecrated, don't look to arch name for first portion of name - always call them Altar of %s - fixes problem where altar is special god altar that has god's name in archetype, resulting in altar of .. of ... MSW 2003-03-18 | |||
Show difference between Revision 1.41 and 1.42 | |||
Revision 1.41 | mwedel | 2003/03/07 23:35:32 | +4 -2 |
Patch for 64 bit experience total, as well as flexible number of levels. Basically, max level is now dynamic, set in exp_table file. Experience is now a 64 bit value, so much higher totals now allowed. To allow for flexible levels, add new function - did_make_save() which is used for players/monsters to see if they make their saving throw - this is necessary because the savethrow[] array may not be as large as max level - did_make_save takes this into account. NOTE: If your updating a server, you will need to copy over/set up a new exp_table file that has max_levels defined and at least one of the tables uncommented. There are no longer any compiled in defaults -- configure, configure.ac: Add AC_CHECK_SIZEOF calls for long and long long so we can know which one to use for 64 bit support (other checks may need to be added) common/exp.c: Remove levels table, replace it with a 64 bit pointer. Change init_experience to allocate appropriately sized table, have it read max_level value from exp_table file. Replace atoi calls with atoll to get 64 bit value. Update dump_experience to properly print 64 bit values. common/info.c: Update dump routines that dump exp to properly print 64 bit values. common/init.c: Add initializing for settings.max_level value. common/item.c: Update sprintf's to handle 64 bit output of exp (speed) value in objects. common/living.c: change MAX_EXP define, update MAX_EXP_IN_OBJ define, add MAX_SAVE_LEVEL which corresponds to how large the savethrow table is. Change MAXLEVEL to settings.max_level. Change level_exp() to return 64 bit value, other updates in functions to use 64 bit values. Add did_make_save() function. common/loader.l, common/loader.c: Update load/save routins of exp to deal with 64 bit values. common/map.c: Update calculate_difficulty to use 64 bit values when storing exp - unlikely to make a difference, since unlikely any map will get to a point where it has that much exp on it. common/porting.c: Remove dead code from save_long(), add save_long_long() to save 64 bit values. include/autoconf.h.in: SIZEOF_LONG and SIZEOF_LONG_LONG values added. include/global.h: Add code to typedef sint64/uint64 types based on what type gives us those values. Add max_level to settings array. include/libproto.h: rebuilt. include/living.h: Replace exp field with 64 bit value. include/player.h: Update party kill log exp tracking to have 64 bit values. lib/exp_table: Udpate comments about max_level, uncomment what was the default table so new installs have working table. Add 5 levels to all the tables. random_maps/monster.c: Update place_monsters to use 64 bit when storing exp total for map/per square. server/apply.c: Replace MAXLEVEL with settings.max_level, add did_make_save calls where appropriate server/c_misc.c: have statistics command properly print 64 bit exp value. server/c_wiz.c: Have stats command properly display 64 bit value. server/hiscore.c: Replace exp values with 64 bit values, update to properly load/display them. server/player.c: replace savethrow[] reference with did_make_save() server/skill_util.c: Update skills command to properly show 64 bit exp values. server/spell_effect.c: replace savethrow[] reference with did_make_save(), allow players to cast directors right beneath themselves, but other walls must be on empty space. MSW 2003-03-07 | |||
Show difference between Revision 1.40 and 1.41 | |||
Revision 1.40 | garbled | 2003/02/13 23:50:33 | +1 -1 |
Lots of updates here: common/item.c: make item_power stop showing up in ring short descriptions. fix some of the items that were double-displaying materialnames, like mithril mithril chainmail. common/loader.l: add tooltype common/utils.c: Unless the object is armour or weapons, pick the first materialname we find. Now, newly generated diamonds will stack. Fix name_to_material to return NULL if it finds nothing, fixes navar_city/museum crash. Change set_materialname to take a materialtype_t argument, allowing functions to manually set the materialname, rather than let the randomizer pick for them. include/define.h: Add TOOL and BUILDFAC for item building. include/object.h: add tooltype for item building. include/materials.h: add M_SPECIAL. Set this in an object, to prevent things like mithril mithril chainmail. This is primarily only needed in artifacts, because they change the base material of the arch. Also useful in things like the demonspawn shield, and on maps. lib/artifacts: sprinkle M_SPECIAL around. server/player.c: remove auto_heal. This never should have been committed, and was never referenced by any code. server/c_object.c: add item building, but add it disabled. Too many bugfixes were tied in with this code to cleanly add them. When enabled, this code will add player item building, similar to create to take place. Requires a host of graphics and arches to be useable. | |||
Show difference between Revision 1.39 and 1.40 | |||
Revision 1.39 | garbled | 2003/02/06 02:08:49 | +1 -0 |
Fix the following bugs: When doing alchemy with a transmute formula, check if we should add one of the materialtype's special modification properties into the newly created object. When performing alchemy, do better checks to remove the materialname form the object's strtoint value. Don't remove the materialname on non-weapon/armour, and don't remove it if the object has it manually specified in the arch. Fixes alot of formulae I broke. | |||
Show difference between Revision 1.38 and 1.39 | |||
Revision 1.38 | garbled | 2003/02/04 00:26:07 | +1 -0 |
Fix some bugs for once, rather than introduce them. | |||
Show difference between Revision 1.37 and 1.38 | |||
Revision 1.37 | garbled | 2003/01/29 18:07:08 | +2 -0 |
New materialtype system for crossfire. Based in concept on my original design, but rewritten from scratch to make it easily extensible. In a nutshell: Each of the old materialtypes (metal, glass, stone, wood) are now a class of materials. When an item in the game is created, if it does not have a specific materialname of it's own, a materialname is generated randomly from the matching entries in the "lib/materials" file. This file contains all of the saving throws, and other material specific modifications for each of the expanded materials. Materials can be manually specified in the arch with the "materialname" directive. Such as the gold coins, which are specified to be made of, you guessed it, gold. Saving throws have been slightly rewritten to use the new materialtypes, and a few other minor details associated with materialtypes have been patched up. Adding a new type of stone or wood, is as simple as adding a new entry in the lib/materials file. The game will automatically start distributing them around randomly. | |||
Show difference between Revision 1.36 and 1.37 | |||
Revision 1.36 | garbled | 2003/01/20 17:58:33 | +1 -0 |
Change the way wands rods and scrolls are created. Rather than randomly picking a level based on difficulty, the game now calculates a multiplier. This is the larger of either the levels/damage increase or levels/duration increase. If both of these are 0, we use 5. This does a number of things: 1) Rather than having 100 different possibilities for level of these items, there are 100/mult. Meaning that on average, more scrolls will stack. 2) A scroll of level 7 where the ldur was 5 is fundamentally equivilent to a level 5 scroll.. so just make them that way anyhow. 3) We now change the value of the item, based on these properties.. so a high level scroll will cost much more than a low level scroll. The cost increase is more, depending on how much more powerful the scroll is per level. In the very least.. scrolls should stack better now, and shop prices for them will make a wee bit more sense. | |||
Show difference between Revision 1.35 and 1.36 | |||
Revision 1.35 | garbled | 2003/01/16 22:38:35 | +1 -0 |
Add a duplicator/multiplier/destroyer object type. This will duplicate a specific arch when triggered, and that arch is on top of the duplicator. It will multiply the number of items in the pile, by the level of the duplicator. If the duplicator is set to level 0, it will destroy the object. | |||
Show difference between Revision 1.34 and 1.35 | |||
Revision 1.34 | mwedel | 2003/01/08 02:39:17 | +2 -7 |
Bulk of this commit is to improve code for tiled maps - replace wall/blocks_magic/blocks_cleric, etc with get_map_flags which also does map tiling translation as needed. This should fix a lot of the bugs related to map tiling (there are sure to be more out there - all the get_map_ob still need to be checked). Other changes - many spells stopped progressing on spaces that blocked view - that is now removed - didn't make a lot of sense. Other fixes - some cleric spells (eg, word of recall) checked to see if magic was prohibited, didn't check to see if cleric was prohibited. Clean up some bugs in the lighting code that would cause erroneous results. Also, allow players to see immediately around them on outdoor maps no matter how dark the map really is - behaviour on indoor maps is the same. Lots of code reformatted, and lots of obsoleted/dead code removed. Add max range to dimension door. Fix magic map - got broken when the layer stuff was redone - was not showing proper colors. IT also works sensibly on tiled maps now - rather than display based on the map, it gives the player a 50x50 area centered on where the player is. Change fire_bow - move special player fire modes into own function - makes code much cleaner. Hopefully this fixes more bugs than it introduces. common/los.c, common/map.c, common/object.c, crossedit/Edit.c, include/libproto.h, include/sockproto.h, include/map.h, include/spellist.h, include/sproto.h, random_maps/treasure.c, random_maps/wall.c, server/attack.c, server/c_misc.c, server/c_wiz.c, server/disease.c, server/main.c, server/monster.c, server/pets.c, server/player.c, server/rune.c, server/shop.c, server/skill_util.c, server/skills.c, server/spell_effect.c, server/spell_util.c, server/time.c, socket/info.c: See note above server/apply.c: Limit number of times weapon can be enchanted so that it won't overflow item_power. Modify enchant armor to enchant as normal armor is enchanted, also only allows one item to be enchanted. MSW 2002-01-07 | |||
Show difference between Revision 1.33 and 1.34 | |||
Revision 1.33 | garbled | 2002/11/08 02:45:26 | +2 -0 |
Move the weather defines into tod.h. Add a function pointer for the weather_effect command, so it can be called from ready_map. | |||
Show difference between Revision 1.32 and 1.33 | |||
Revision 1.32 | mwedel | 2002/10/12 00:34:29 | +5 -4 |
Experience cleanup - the main functional change is that no upper limit of exp in an individual skill, save for the limit that there is an upper limit of total exp a player can have. Thus, if a player concentrates complete in one skill, he could get to level 110 in it. A lot of code cleanup was done - so much had gotten added to the exp code that it was a real mess. common/living.c: re-arrange some of the code, so all the exp related functions are together. remove adjust_exp(), change check_dm_add_exp_to_obj() to check_exp_adjust. Add new functions add_player_exp(), check_exp_loss(), check_exp_add(), subtract_player_exp(). include/libproto.h: rebuilt. server/c_wiz.c: Update command_addexp() to use new exp functions. server/gods.c: Update lose_priest_exp() to use new exp functions. MSW 2002-10-11 | |||
Show difference between Revision 1.31 and 1.32 | |||
Revision 1.31 | mwedel | 2002/09/11 01:21:46 | +13 -11 |
INSTALL: Update directions with new automake method. common/Makefile.am, common/Makefile.in: Fix code for building the libproto.h file - it was including loader.l and not loader.c common/exp.c: Add init_experience() and dump_experience() functions - init_experience() loads the experience table from a file. Add default experience table into this file common/init.c: Add call to init_experience() common/living.c: Remove experience tables - players can select the one they want by changing the exp_table file. Remove reference to new_levels[] - only levels[] is used now for the formentioned reason. include/config.h: Update notes about SIMPLE_EXP system. include/libproto.h: rebuilt. lib/Makefile.am, lib/Makefile.in: Add exp_table to list of files. lib/exp_table: New file that contains experience information. server/c_object.c: Modify command_take() to look for objects above the player to pick up, then objects below. This fixes the bug with not being able to use the take command on items from a chest the player opens without moving off the space. server/init.c: Add -mexp dump switch to dump the experience table. Allow the simple experience system to be set in the settings file. server/skill_util.c: Fix oddness in calc_skill_exp() which could result in add amounts of exp given. MSW 2002-09-10 | |||
Show difference between Revision 1.30 and 1.31 | |||
Revision 1.30 | mwedel | 2002/09/07 00:55:18 | +1 -1 |
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.29 and 1.30 | |||
Revision 1.29 | mwedel | 2002/09/01 01:32:30 | +1 -1 |
This change mostly deals with improving behaviour of pet monstes. Most of the code is from K. Reinert - however, I did some code cleanup/ fixes related to pet monsters, so it is difficult to note where each piece of code came from. One thing this does fix is handling of multipart pets - these now work properly. common/map.c: Update comment for get_rangevector() - no code change. common/object.c: Add get_search_arr() which is used in pet monster code. This returns a semi random scrambling of the freearr array. doc/Developers/protocol: Update documentation about map1a protocol command. include/libproto.h, include/sproto.h: rebuilt. server/attack.c: Have drain attacks return 1 damage so that it is clear that you are actually hitting your opponent. Otherwise, you would get messages that 'you missed xyz', even though you are draining it. This extra point of damage shouldn't change balance in any significant way. server/monster.c: Update hnadling of enemies for pet monsters. It should more intelligently choose the monsters and not switch/clear the enemy field for no reason anymore. Change find_nearest_living_creature to use the get_search_arr() to more randomly choose direction of target - before, there was a proclivity to always look in the north direction. Modify can_hit() to look for closes part of enemy - otherwise, monsters may not attack opponents even if they were right next to them because they couldn't get to the enemies head. Remove move_object from this function - merged with move_ob in move.c server/move.c: Fix move_ob to use 'cleaner' code of move_object, but also have specific features that move_ob had (player handling). Before move_ob didn't handle multipart objects correctly, and the two functions were largely the same. Now move_object() just calls move_ob - the only difference in the functions is that move_ob() takes 3 parameters instead of 2 of move_object() (added parameter is originator). I think this should now mean multipart player objects may now work. server/pets.c: get_pet_enemy enhanced to be much smarter about selecting/finding things for the pet to attack. server/player.c: Remove commented out line of init_beforeplay MSW 2002-08-31 | |||
Show difference between Revision 1.28 and 1.29 | |||
Revision 1.28 | mwedel | 2002/07/14 23:57:12 | +3 -2 |
-- Start body commit notes -- Major commit. This adds body locations which is used for equipping items. Equipment has information which body part it gets equipped to, and monsters have information on how which body locations they can have. As part of this work, I also did a lot of code cleanup. To use this, you must use up to date archetypes - the ones included in this commit are fine - just make sure you install them. If you don't, players will not be able to equip items. common/arch.c: Initialize body_used to be same as body_info for archetypes - this way when monsters are created, they can start equipping items right away. common/exp.c: update new_exp() - some flags it checked for before no longer exist or have new names. common/info.c: describe_item() now takes second parameter - update dump_abilities to use new calling convention. common/item.c: Add table that describes the body_info locations and their names. Add functions that calculate item power for objects that don't have it set. Update display functions to show item_power in items. Update describe_monster() - use_horn/wand/rod merged into just use_range. Modify describe_item() to take second paramater - who the item is being described for. Show item_power in describe_item. common/living.c: Pull out MAXLEVEL from being defined in this file - define in in define.h, since other files use it. Add NUM_STATS define - replace hard coded values of having just 7 stats with it. Update change_abil to not display that the player has a new attacktype when equipping a bow that has it - fix_player() ignores the attacktype of the bow, so it was incorrect information. fix_player(): Initialize player ranges structure to null - will get filled in by code in function, updated to deal with updating the body_used data from body_info in the objects. Replace instances of last_heal with gen_sp_armour. Rearrange some code to make function more readable. common/loader.c, common/loader.l: Remove the variable_const information - no longer needed and confusing for new people when adding in new object elements. Add set_body_info() - parses the string from the load file and sets the appropriate array element. Add check_loaded_object() - does sanity checking for an object after finished loading - replaces need for long processing directive in the actual rules by having seperate function. Remove unused flags from load directives (apply_once, no_pretext, can_apply), add some new ones (item_power, gen_sp_armour), update others to can_use_range. Replace flag_links with simple array that contains the name for each corresponding flag. Update get_ob_diff to not use the V_ values and just include the actual string name - all recent changes have done this, just updated for old stuff. Update get_ob_diff to save new values that have been added. common/object.c: clear_object: Modify to use memset to clear the structure to zero - this is less error prone than listing all the specific values, and probably faster. Also, makes it easier to add new elements - no need to update object.c in most cases. common/player.c: Remove get_player_ob routine - this is now merged in with get_player_ob in server/player.c. Remove generate_ext_title - not used. common/readable.c: Update to pass second argument to describe_item. common/treasure.c: Update to calculate item_power of generated items. Clean up a lot of code formatting. Update add_abilities to use gen_sp_armour values, not last heal (note, it appears the last_heal values weren't being used before). Update calls to describe item to take second parameter. doc/Developers/objects: Update will_apply notes, add note about item_power, body location. include/define.h: Comment out unused flags (flag_apply_once, flag_paralyzed, flag_no_pretext, flag_ready_rod, flag_read_horn). Add flag_use_shield. rename flag_use_wand to flag_use_range. rename flag_ready_wand to flag_ready_range. Add flag_ready_scroll. Update ARMOUR_SPELLS access macro. Add AP_PRINT flag to apply flags. Add CAN_APPLY_.. return types for can_apply_object function. include/includes.h: add strftime, mktime checks to this file. include/libproto.h: rebuilt. include/living.h: Add NUM_STATS define, update extern declarations to use it for sizing. include/loader.h: remove the V_.. info and xbm_.. externs that were not used. include/newserver.h: Remove ext_tile information. include/object.h: Add Body_Locations structure, NUM_BODY_LOCATIONS define. Add definitions for WILL_APPLY values. Clean up object structure - formatting is now consistent, ordering of values groups values together more logically. Update all types to use the int8/int16/int32 types. Several unused fields removed. include/player.h: Update rangetype enum. Add unapplymode enum. Clean up player structure - type updates, unused fields removed, formatting fixed up. include/spells.h: remove range_name extern. Update SpellTypeFrom field to combine wand/rod/horn into spellMisc - none of the spell casting code was differentiating these. include/sproto.h: rebuilt. lib/Makefile.in: Add new help files (applymode, bind, brace) lib/archetypes: rebuilt for body_info, gen_sp_armour, item_power, can_use_shield information. lib/artifacts: updated for item_poer and gen_sp_armour changes. lib/treasures: remove unused _force for player treasure. plugin/plugin_python.c: Change FLAG_USE_WAND to FLAG_USE_RANGE. server/apply.c: Move stftime, mktime to include/includes.h. Remove draw_find() - one line function can just as easly be in the code itself. Update calls to long_desc to pass second parameter. move gravestone_text() to player.c file. Add direction parameter to apply_scroll() - in this way monsters can use it properly. Remove dead code. Update apply_special function. Add unapply_special(), get_item_from_body_location(), unapply_for_ob(), and can_apply_object() functions. server/attack.c: Remove SET_FLAG(op, FLAG_PARALYZED) line - no code was ever checking status of FLAG_PARALYZED. server/c_misc.c: add command_body() which dumps body information for player. Update who as idle element in player structure removed - was not being used by anything. Add command_applymode() to set players prefered unapply method. Remove calls to unlock_player() in various functions - unlock_player() has not done anything meaningful for a while. server/c_object.c: Modify long_desc to take a second parameter which is who is examing the object. this is needed so that we can pass it down to some of the lower level functions. Update calls to describe_item to pass this second parameter. remove FLAG_NO_PRETEXT code - no archetyps were using it. When examining objects, also tell player where to put them on. server/c_range.c: Update legal_range() - we now store the object that is responsible for a range in the player object, so code is much simpler. Update change_spell() to not destroy golem just by readying another spell - we now let players regain control of golems after switching to another range. Update change_spell to use item name of object for range description. server/c_wiz.c: remove reference to count_left from player object - field removed from structure. server/commands.c: add new commands (applymode, body) to command dispatch table. server/login.c: Remove unlock_player() and lock_player() and calls to it - current checking of names at login should be sufficient to prevent duplicates. Remove dead code from check_name. Update load/save code for unapply mode value. Add set_flag(op, FLAG_USE_SHIELD) if player is allowed to use armor - needed since flag_use_shield is really a class feature and so is not automatically updated for old player files. server/main.c: Remove references to count_left. memset marker object to NULL - seems to increase stability on metalforge server. server/monster.c: Many updates related to the body info - monsters follow some rules as players. Add monster_should_cast_spell function - monsters will use this for all spellcasting related actions (abilities, scrolls, wands, etc). Update for merged rod/horn/wand ranges. Update bow use by monsters - they don't actually need to equip it to fire - this way we don't need to constantly swap the monsters weapons between the bow and melee item. Use fire_bow from player.c for most of the work. Modify scroll usage - monster will use it when player is near, not when it first picks it up. Add FLAG_READY_SCROLL to denote the monster has a scroll to use. Also, monster now casts it in appropriate direciton. Merge the monster_use_wand/rod/horn into monster_use_range. Modify check_good_weapon and check_good_armour to just look at the stats of the two items without needing the monster to apply it first. server/player.c: Print motd in green so it is more noticable. Update get_player function to do work it did before as well as that of get_player_ob. Have get_player take a parameter which is the object of the player if he has one. Modify to use memset to clear the player structure - more sure fire than explicitly listing values to initialize. Remove calls to unlock_player. Modify fire_bow so that monsters can also use the function. Add fire_misc_object() to fire_wand/rod/horn - removes code from fire(). Add gravesetone_text() to this file. server/shop.c: Update to pass second parameter to describe_item(). server/skill_util.c: Update check_skill_to_fire since there are fewer rangetypes now. change range_scroll name to range_golem, as that is a bit more accurate for what it actually does. Modify show_skills() to show player his item power and total of items he has equipped. server/skills.c: Add second paramater to long_desc, remove references to count_left. server/spell_effect.c: Add second paramater to long_desc, remove references to count_left. Update range_scroll to range_golem server/spell_util.c: remove references to count_left. Update messages if player trying to cast where he can't with new range names. socket/info.c: Update range information and how we display what it is - we will use the object name of the range if available. Remove reference last_known_spell, last_shoot, last_spell, last_value player structure fields. socket/init.c: Remove ext_title information. socket/request.c: Add element for life_stealing in the resistance array. Remove references to idle, count_left in player structure. remove ext2 title information. MSW 2002-07-14 -- End body commit notes -- | |||
Show difference between Revision 1.27 and 1.28 | |||
Revision 1.27 | mwedel | 2002/03/20 00:27:45 | +9 -5 |
Updates for 1.1.0 release - pretty much all minor bug fixes, like compiler warning messages, invalid ANSI C constructs, missing files to include in the distribution. Makefile.in, include/version.h: update version. include/Makefile.in: Add some missing files include/libproto.h, sproto.h: rebuilt to prevent compiler warnings lib/Makefile.in: Include the wizhelp files in the archive. server/apply.c, server/skill_util.c: fix invalid code (function parameter names can't match structs/typedefs), add a missing return value. server/c_move.c, server/c_new.c, server/c_object.c, server/commands.c, server/daemon.c: Don't include the sproto.h if CEXTRACT is defined. server/plugins.c: fix printf command that was printing wrong value type. doc/spoiler-html/Makefile.in: Remove extraneous newline | |||
Show difference between Revision 1.26 and 1.27 | |||
Revision 1.26 | avogl | 2002/03/01 15:33:10 | +3 -0 |
As announced on cf-devel, this is the patch which adds a new dragon-race to Crossfire. Players of this dragon race can gain resistances by eating the flesh of their defeated foes. They can also specify in a certain resistance-type and gain various abilities when increasing levels. This "focus" can be switched by eating very special As announced on cf-devel, this is the patch which adds a new dragon-race to Crossfire. Players of this dragon race can gain resistances by eating the flesh of their defeated foes. They can also specify in a certain resistance-type and gain various abilities when increasing levels. This "focus" can be switched by eating very special flesh, which will be available for sale. Dragon players gain special titles which cannot be overwritten by manually set titles. Also see the dragon race description during the race selection process. Note that the quetzal has been slightly modified (picture and race) to prevent getting mixed up with the new dragon race. Please keep in mind that this is the first version of this dragon-race-code. Do not expect it to be perfectly balanced in all aspects. Player's opinions will provide some good feedback for further development I hope. --AndreasV | |||
Show difference between Revision 1.25 and 1.26 | |||
Revision 1.25 | garbled | 2002/01/02 00:53:23 | +1 -1 |
Backout of Anim25 patch by michtoen. It was causing server crashes, and is generally not useful in a non-iso crossfire. Discussed w/ mwedel. | |||
Show difference between Revision 1.24 and 1.25 | |||
Revision 1.24 | garbled | 2002/01/01 18:26:28 | +2 -0 |
Clean up some missing prototypes, protect tod.h against multiple inclusion, and generally make -Wmissing-prototypes happier. | |||
Show difference between Revision 1.23 and 1.24 | |||
Revision 1.23 | garbled | 2002/01/01 17:37:54 | +3 -1 |
Add the concept of overlay maps to the code. An overlay map is a map which is loaded on top of another map, replacing values in the header, and placing objects on top of other objects. This is the fundamental part of the new weather code, but also can be used to allow dynamic editing of the worldmaps by DM's eventually. garbled 2002-01-01 Phase II of the new weather system is done. Please let me know immediately if this causes any bizzare effects. | |||
Show difference between Revision 1.22 and 1.23 | |||
Revision 1.22 | garbled | 2001/12/18 02:58:03 | +3 -0 |
Lots of changes here. Basically implement a night and day system, as well as tracking of game time. A clockdata file is now created and updated by the server to increment time. Time increases by 1 hour, approximately every 2 minutes of real time. Right now this code has virtually no effect, but as maps are updated with outdoor settings, nightfall will occur automatically. The time command has been modified to show the current game time, and the clock objects have been changed to show the game time as well. garbled 2001-12-18 | |||
Show difference between Revision 1.21 and 1.22 | |||
Revision 1.21 | michtoen | 2001/11/27 22:44:42 | +1 -1 |
Anim25 Patch This patch do this things mainly: - include same animation sheme for players and monster again - introduce guard/walk/fight animation in 8 direction - direct action: monster change from guard/walk animation when they get attacked and fall back to walk or guard when the enemy is gone - Monster do "intelligent" animation -> facing enemy -> turn and run when scared - fixed some animation flaws which invokes late anim update (monster moves first and hold one frame old facing) - Include real time player animation! -> player starts moving animation when player moves -> fall back to guard anim when player do nothing -> plays fight anim when hit some Hope i got all. This patch is much not so hard as it sounds. Most of these features was easy to include because the old anim engine was able to do about 80% of this. I had just to boost up the logic. | |||
Show difference between Revision 1.20 and 1.21 | |||
Revision 1.20 | michtoen | 2001/11/17 15:25:21 | +1 -0 |
commit the ext2 gender & guild system - first part. Sorry, my cvs sytem is still broken, i will write a better doc to the list. Notice some other small fixes too. | |||
Show difference between Revision 1.19 and 1.20 | |||
Revision 1.19 | gros | 2001/10/14 02:57:14 | +5 -3 |
Major changes: Added dynamic plugin support, removed old Guile support. - Gros 10/14/01 | |||
Show difference between Revision 1.18 and 1.19 | |||
Revision 1.18 | garbled | 2001/10/07 02:12:40 | +5 -0 |
Header modifications needed for the new attacktype-based damage messages code. In addition, fix where I put the prototypes for the utils.c functions in sproto.h instead of libproto.h garbled 2001-10-06 | |||
Show difference between Revision 1.17 and 1.18 | |||
Revision 1.17 | mwedel | 2001/08/21 00:39:30 | +3 -0 |
Enhancements to make monsters 'do the right thing' with relation to tiled maps (ie, will detect players and attack them if on an adjoining tiled maps). This involved a rewrite of path_to_player - I've tested this out, and if anything, it seems that monsters may be more aggressive on spellcasting. ++ common/map.c: blocked modify to make sure it is checking valid coordinate value. blocked_link,blocked_two modified to translate for tiled maps. Add load_and_link_tiled_map which loads a tiled map and links in all pointers relative to adjoining maps. out_of_map modified to use this function instead of doing the work itself. Add get_rangevector function that returns offset, direction, and distance between two objects, taking into account tiled maps. get_rangevector_from_mapcoord added which is similar to get_rangevector, but takes a map and coordinates instead of a second object. on_same_map function added which returns true if the two objects are on the same logical (ie tiled) maps. doc/crossfire.doc: Add note about what Int does for monsters. include/map.h: Add some comments, and add structure for rangevector function return values. server/attack.c: add calls to on_same_map instead of doing op->map comparisons. server/monster.c: Many functions modified to properly handle tiled maps properly. server/pets.c: get_pet_enemy modified to know about tiled maps. server/player.c: get_nearest_player modified to know about tiled maps. path_to_player rewritten to know about tiled maps - I think some other bugs were also fixed in return values. Split player_attack_door from move_player attack to keep functions a more reasonable size. move_player_attack, player_can_view modified to know about tiled maps. server/skills.c: can detect_enemy modified to take another parameter - call in steal updated to pass this parameter. server/spell_util.c: ok_to_put_more, can_see_monsterP modified to handle tiled maps properly. socket/item.c: look_at modified to return proper results when player looks at something on an adjoining tiled map. ++ End of checkin | |||
Show difference between Revision 1.16 and 1.17 | |||
Revision 1.16 | mwedel | 2001/07/13 23:06:50 | +19 -39 |
Map tiling checkin. include/config.h: remove RANDOM_ENCOUNTERS (no longer available) and USE_LIGHTING (now standard part and always on). include/define.h: move P_... values to map.h include/global.h: add definition for compression externals, as they are used in a few files. remove map macro functions - moved to map.h as appropriate. Add FREE_AND_CLEAR macro that frees data and then sets the pointer to NULL. include/map.h: Largely redone - many new macros, new map structure. include/object.h: remove lights object link pointer from objects. At some #defines that are the flags for update_object and insert_ob_in_map include/player.h: Add a few comments. MSW 2001-07-13 | |||
Show difference between Revision 1.15 and 1.16 | |||
Revision 1.15 | mwedel | 2001/06/29 00:59:46 | +387 -367 |
common/object.c, common/player.c, include/object.h, server/skill_util.c: Remove the unused LINKED_SKILL code. common/Makefile.in: Use cproto to make prototypes - cextract fails for some reason and now seems unsupported. Cproto generates a bunch of warnings, but does do the job. common/arch.c,server/apply.c, server/main.c, server/monster.c: cleanup some compile warnings (unusued variables, returns without value doc/playbook/Makefile.in: Create proper dependencies for files. doc/playbook/treas2-extract: Add player_force to value to ignore. doc/spoiler-html/spoiler.html: rebuilt server/skill_util.c: Remove the unused LINKED_SKILL code. Prevent characters that have meditation skill from learning melee weapon skill. MSW 2001-06-28 | |||
Show difference between Revision 1.14 and 1.15 | |||
Revision 1.14 | mwedel | 2001/06/04 01:41:02 | +3 -5 |
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.13 and 1.14 | |||
Revision 1.13 | mardahl | 2001/05/24 21:42:26 | +1 -0 |
Implemented reduced death penalty: 20% or 3 levels, whichever is lower. --PeterM 5/24/2001 | |||
Show difference between Revision 1.12 and 1.13 | |||
Revision 1.12 | mwedel | 2001/05/09 01:58:12 | +3 -1 |
Various improvements to make finding memory leaks easier. common/anim.c: Add free_all_anim function common/arch.c: Modify free_all_arch to free more data common/init.c: If running under MEMORY_DEBUG, don't pre-allocate objects. common/map.c: Add free_all_maps functiion. common/object.c: Modify object allocations if using MEMORY_DEBUG to only malloc one object at a time, and not pre-allocate objects. common/readable.c: Fix memory leak. common/shstr.c: Include autoconf.h so it can pull in dmalloc.h file. include/config.h: Remove notes of what was removed a long time ago. Add MEMORY_DEBUG option. include/libproto.h, include/sockproto.h, include/sproto.h: automatic rebuild server/c_misc.c: Fix 'malloc info command so it reports right memory total for maps. Add command_style_map_info which sums up memory used by style maps. server/commands.c: Add style_info wiz command which dumps memory usage for style maps. server/init.c: Have sighup handler call cleanup function. server/main.c: Fix clean_tmp_files which could result in crash if one of the maps in memory has 0 reset time. Modify cleanup function to free more data. server/player.c: op_on_battleground: Fix compile warning about unuused variable. socket/init.c: Change name of free_all_ericserver to free_all_newserver, have it free all face data. MSW 2001-05-08 | |||
Show difference between Revision 1.11 and 1.12 | |||
Revision 1.11 | mwedel | 2001/04/30 01:34:28 | +3 -2 |
common/object.c: Add clear_owner function. include/libproto.h: rebuild. server/player.c: Modify op_on_battleground to look for battleground anyplace on space. Temp for for wall of thorns on space - as long as maps don't try to abuse the use of battlegrounds, should be OK. server/time.c: Add clear_owner call to stop_arrow. Fixes problem of thrown objects not getting saved. MSW 2001-04-28 | |||
Show difference between Revision 1.10 and 1.11 | |||
Revision 1.10 | mardahl | 2001/04/07 01:04:24 | +1 -0 |
This hack prevents burnouts and firetrails from stacking themselves many deep. I've noted a huge reduction in the number of objects to be processed from this mod alone, in situatons where a lot of comets are flying. PeterM | |||
Show difference between Revision 1.9 and 1.10 | |||
Revision 1.9 | cvs | 2001/02/11 03:12:13 | +4 -5 |
MSW 2001/01/11: Other than various general cleanups, the main change this code does is that style maps (for random maps) get loaded special now - they objects they contain are not put on the active list, and they use a private map list so they do not appear in the output of the 'maps command. common/arch.c, common/treasure.c,server/login.c: Update calls to load_object common/loaderl.l,loader.c: Update lex_load to take an optional flags option. This is currently only used so that the loader can decide if it should call update_ob_speedto put objects on the active list or not. Calls to lex_load updated. load_object modified to take another option common.map.c: remove PROCESS_WHILE_LOADING and CHECK_ACTIVE_MAPS ifdefs. update calls to load_object. Remove some dead code. include/config.h: Remove CHECK_ACTIVE_MAPS and PROCESS_WHILE_LOADING flags. Those options did not work, and in all likelihood, this would be done via threading now days and not what code was there. include/libproto.h, sproto.h: updated or various function changes. include/map.h: Add MAP_STYLE flag. random_maps/exit.c: Call set_map_timeout after we load the final map so it will get swapped out. random_maps/standalone.c: Add dummy set_map_timeout function so it compiles. random_maps/style.c: Add load_style_map function which does the job of actually checking to see if a style map is in memory, and if not, loads it up. Updates the pointers so it appears on a map style map list and not the general map list. server/main.c: create set_map_timeout function that deals with setting the map timeouts. Fix bug so server doesn't crash if two players kill each other on hall of selection. server/monster.c remove dead code. socket/loop.c: If realloc fails, catch it and exit with meaningful error message. End of MSW 2001/02/11 checkin. | |||
Show difference between Revision 1.8 and 1.9 | |||
Revision 1.8 | cvs | 2001/01/15 16:33:32 | +2 -1 |
MSW 2000/01/15: Various fixes for friendly object code: common/button.c: Add missing call to remove_friendly_object common/friend.c: Pretty much completely re-written. add_friendly_object now checks to make sure the object being added isn't already on the list, remove_friendly_object will remove objects whose tags don't match, and added clean_friendly_list. common/object.c: No reason to use the function pointer to remove_friendly_object since that function is in the lib. common/time.c: Make DEBUG_TIME always on (no longer compile time option). other areas use the global var pticks, so if it was turned off, compile would break anyways. common/treasuer.c: No longer print debug messages on artifacts created. Cluttered log file making it hard to see more important errors. include/config.h: Remove DEBUG_TIME define. include/libproto.h: Rebuilt for clean_friendly_list function. server/main.c: rewrote do_specials to do things based on pticks variable. This allows various specials to be spread out across multiple ticks easier. Also, added clean_friendly_function to part of what this does. server/skills.c: add missing call to remove_friendly_object. Also, removed from #if 0 .. #else .. #endif code. End of MSW 2000/01/15 checkin. | |||
Show difference between Revision 1.7 and 1.8 | |||
Revision 1.7 | cvs | 2000/12/27 01:53:33 | +1 -2 |
MSW 2000/12/26: Checkin of Jan's new god intervention code. I haven't played around with it much, but I haven't seen any really obvious problems. common/living.c: remove learn_prayer_chance common/treasure.c: Various changes to treasure generation - mostly to deal with starting equipment and putting it in the inventory. doc/crossfire.doc: Update docs on god intervention. include/define.h: GT_... flags removed. include/treasure.h: GT_... flags added. Addition flags added from what was in define.h before. lib/archetypes, lib/crossfire.png, lib/treasures: Updated with new archetypes and treasures. random_maps/standalone.c,server/rune.c,server/time.c: Calls to create_treasure updated server/apply.c: New functions for god intervention added, update calls to create_treasure, other god related changes. server/c_wiz.c: Calls to create_treasure updated, various functions to allow DM's to learn/unlearn spells added. server/commands.c: Various commands added to the wiz set of commands. See commen for c_wiz.c server/disease.c: Changes to reduce_symptoms server/gods.c: Numerous updates for god intervention code. server/player.c: Modifications for starting player equipment. server/skill_util.c: Display the god the character worships when they issue the skills command. server/skills.c: Minor cosmetic change made to message when praying on altar. server/spell_effect.c: Changes related to gods, cure spells, and generation of treasures & items. End of MSW 2000/12/26 checkin. | |||
Show difference between Revision 1.6 and 1.7 | |||
Revision 1.6 | cvs | 2000/12/03 18:40:04 | +3 -1 |
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.5 and 1.6 | |||
Revision 1.5 | cvs | 2000/08/07 00:16:33 | +9 -9 |
The following change basically does the following: When the server sends an item name to the client, this item name is now two pieces - the first piece of the name is its singular form, the second piece is the plural name. This now makes items in the inventory appear more proper in terms of pluralization and just normal English. I did notice that the server does not know how to properly make 'torch' plural - it turns it into torchs. A matching check in for the client has also been done. include/newserver.h: Update VERSION_SC to 1024 common/item.c: Change query_base_name to take a second option on whether we should generate a plural version of the name or not. socket/item.c: Modify functions to use second argument on the query_base_name function. Update item commands to send two part names (singular & plural). Modify esrv_send_look to use item1 protocol command instead of item command. server/c_object.c: Update item_matched_string to use second option to query_base_name. Modify function to check against both singular and plural versions of name. server/shop.c: Modify shop_listing command usage in query_basename to use second option. It will also generate the singular name, but that is only used on sorting, so I don't think it will generally cause any problems. include/libproto.h: rebuilt because query_base_name has an addition opt. Mark Wedel 8/13/2000 | |||
Show difference between Revision 1.4 and 1.5 | |||
Revision 1.4 | cvs | 2000/06/16 01:08:06 | +1 -0 |
Modified how firewalls worked. Now they can be triggered with handles. | |||
Show difference between Revision 1.3 and 1.4 | |||
Revision 1.3 | jec | 2000/05/26 04:50:47 | +9 -8 |
* apply() cleanup patch 26/5/2000 | |||
Show difference between Revision 1.2 and 1.3 | |||
Revision 1.2 | jec | 2000/05/22 08:06:15 | +1 -0 |
common/object.c: Splitted set_owner() into set_owner_simple() and set_owner. copy_owner(): New function. server/spell_util.c: explode_object(): Use copy_owner() instead of setting skill and experience objects manually. Bugfix: Don't use op->owner directly (fixed by using the caster in call to SP_level_dam_adjust(), not the owner, which was wrong anyway). server/spell_util.c: fire_arch_from_position(): Use copy_owner() instead of set_owner() if 'op' isn't the real owner but only a spell object owned by somebody else. server/spell_util.c: move_swarm_spell(): Use the swarm spell object as the owner in call to fire_arch_from_position(), which now handles this case correctly. server/spell_util.c: fire_swarm(): Call tailor_god_spell(). server/gods.c: determine_god(): op->type==SWARM_SPELL is a spell. server/gods.c: tailor_god_spell(): op->type==SWARM_SPELL is a spell. Always abort function if we couldn't find a god. Always add god's attacktype if the spellop's attacktype has AT_GODPOWER. | |||
Show difference between Revision 1.1 and 1.2 | |||
Revision 1.1 | uid200 | 1999/04/02 13:10:04 | None |
Initial revision | |||
First version | |||
Revision 1.1.1.1 | uid200 | 1999/04/02 13:10:04 | +0 -0 |
First CVS revsion: crossfire-0.95.3 | |||
Show difference between Revision 1.1 and 1.1.1.1 |