Protocol: | pserver | User: | anonymous |
Machine: | crossfire.cvs.sourceforge.net | CVSROOT: | /cvsroot/crossfire |
Filename: apply.c | |||
Revision 1.180 | qal21 | 2006/09/10 09:21:16 | +10 -2 |
Add check to auto-dropping of applied transports to not drop in shops. | |||
Show difference between Revision 1.179 and 1.180 | |||
Revision 1.179 | qal21 | 2006/09/09 19:24:33 | +2 -2 |
Previous commit to use is_in_shop() caused the shopkeeper to wave when entering instead of exiting. Fixing that. | |||
Show difference between Revision 1.178 and 1.179 | |||
Revision 1.178 | qal21 | 2006/09/09 19:04:35 | +3 -13 |
Use is_in_shop() to check if it's in a a shop. | |||
Show difference between Revision 1.177 and 1.178 | |||
Revision 1.177 | qal21 | 2006/09/09 15:32:12 | +16 -3 |
When applying a transport which is in an inventory, drop the transport. | |||
Show difference between Revision 1.176 and 1.177 | |||
Revision 1.176 | mwedel | 2006/09/04 02:21:05 | +2 -2 |
Bulk of this change is updating some files to use draw_ext_info() - all future code should use this, since there is no real reason not to and it provides additional features. One notable change - reversed the order of the new and old formats in draw_ext_info_format() - the order was different than that of draw_ext_info(), which leads to confusion. draw_ext_info_format() wasn't used in many places, so easier to change that than all the draw_ext_info() calls. Only another 1200 new_draw_info calls left in the server. -- doc/mediaTags: Fix some typos, clarify some behaviour (the way it works now so that there will not be confusion in the future). include/define.h: Remove MSG_ tags - moved to newclient.h include/newclient.h: Synchronize with client version. Add MSG_ defines include/newserver.h: Move some defines from here to newclient.h server/apply.c: Reverse format parameters to draw_ext_info_format() calls. server/c_misc.c: Rewrite to use draw_ext_info{_format} - this allows nice formatting of tables, etc. Also general style cleanups, clarify some messages. in help_topics(), don't do linewrap - let the client handle it. remove bug_report() function - no longer used. Remove explore_mode() - wasn't used. Move command_style_map_info() to c_wiz.c since it is a wiz only command. server/c_wiz.c: As per above, move command_style_map_info() to this file since it is a wiz command. server/player.c: Reverse format parameters to draw_ext_info_format() calls. server/shop.c: Update to use draw_ext_info{_format} instead of new_draw_info() socket/info.c: Reverse format parameters in draw_ext_info_format(). Update va_start() to use new last parameter. Remove call to strip_media() if the client supports the tag - that should only be used if the client does not support the tag. socket/request.c: remove commented out MSG_TYPE values. MSW 2006-09-03 | |||
Show difference between Revision 1.175 and 1.176 | |||
Revision 1.175 | ryo_saeba | 2006/08/26 12:56:19 | +1 -26 |
Remove obsolete event system. | |||
Show difference between Revision 1.174 and 1.175 | |||
Revision 1.174 | gros | 2006/08/12 08:00:34 | +37 -33 |
Changed the comparaison code between the weapon's name and the player's, so that a weapon created by "gro" cannot be used by "gros. This is a fix for bug #1539150. gros, 2006-08-12 | |||
Show difference between Revision 1.173 and 1.174 | |||
Revision 1.173 | lalo | 2006/08/11 23:09:42 | +12 -1 |
keep converters from accepting unpaid items | |||
Show difference between Revision 1.172 and 1.173 | |||
Revision 1.172 | qal21 | 2006/08/10 01:13:18 | +8 -3 |
Tell the client the map has scrolled when applying transports. Fixes bug #1528565. | |||
Show difference between Revision 1.171 and 1.172 | |||
Revision 1.171 | ryo_saeba | 2006/08/07 02:57:55 | +8 -2 |
Tell player whether she's the transport's captain or not | |||
Show difference between Revision 1.170 and 1.171 | |||
Revision 1.170 | tchize | 2006/07/02 10:32:35 | +2 -2 |
more progress in unit testing, marked points of interrest in code | |||
Show difference between Revision 1.169 and 1.170 | |||
Revision 1.169 | mwedel | 2006/06/05 01:28:56 | +8 -2 |
Clean up some compiler warnings. Most of the changes are related to replaced %lld with FMT64 defines so that the format will be correct, no matter if the 64 bit type is a long, long long, or if this is windows. #if 0 out a bunch of code that isn't used. -- common/exp.c: Replaced lld with FMT64 common/holy.c: #if 0 out baptize_altar(). Add banner copyright at top of file. common/info.c, common/item.c, common/loader.l, common/loader.c, common/map.c: common/porting.c Replaced lld with FMT64 common/time.c: Replace a bunch of variables declared as longs to be uint32. Update various sprintf appropriately. include/global.h: Add FMT64 and FMT64U as appropriate for different systems. Change max_time to be a uint32 include/sockproto.h, include/sproto.h: rebuilt server/apply.c: #if 0 out monster_apply_special server/c_range.c: Add != 0 in assignment if statement - same meaning, clearer on intention and avoids compiler warning. server/c_wiz.c: Update command_kick() to take const char. Update command_speed() to operate properly based on max_time being a uint32. Update various lld to FMT64. Clarify ambiguous if/if/else statement in command_insert_into() server/commands.c: Add cast to command_kick for new function prototype. #if 0 out find_command(), parse_string(), parse_command() server/disease.c: #if 0 out find_disease(), reduce_symptoms() server/egoitem.c: #if 0 out create_artifact(). Add copyright at top of file. server/gods.c: #if 0 out get_god() server/hiscore.c: Replace lld with FMT64 server/login.c: #if 0 out create_savedir_if_needed() server/resurrection.c: Replace lld with FMT64. #if 0 out dead_character() and dead_player_exists() server/server.c: Remove info_keys() - hasn't been used in a long time. #if 0 out process_active_maps() server/skill_util.c: Replace lld with FMT64 server/spell_util.c: #if 0 out check_spell_effect() server/weather.c: #if 0 out feather_map(). Fix what I suspect is an error in worldmap_to_weathermap() to skip over starting slashes. socket/image.c: Add a fair number of char * casts to suppress warnings. socket/init.c: Change buflen in init_connection() to socklen_t to match function prototype. Add some char * casts. socket/loop.c: Add some char * casts. -- MSW 2006-06-04 | |||
Show difference between Revision 1.168 and 1.169 | |||
Revision 1.168 | ryo_saeba | 2006/05/05 05:14:04 | +2 -2 |
Fix for bug #1473941 (Damnation bug) | |||
Show difference between Revision 1.167 and 1.168 | |||
Revision 1.167 | ryo_saeba | 2006/05/05 04:26:34 | +21 -16 |
First part of patch #1453869 courtesy Stefan Huehner (shuehner) | |||
Show difference between Revision 1.166 and 1.167 | |||
Revision 1.166 | tchize | 2006/04/06 16:18:35 | +11 -11 |
finished common/arch.c unit test, fixed a few bugs, moved function around and renamed other | |||
Show difference between Revision 1.165 and 1.166 | |||
Revision 1.165 | ryo_saeba | 2006/03/18 09:05:36 | +12 -9 |
Massive cleaning of code. Shouldn't be any functional change. | |||
Show difference between Revision 1.164 and 1.165 | |||
Revision 1.164 | akirschbaum | 2006/02/17 15:29:48 | +6 -6 |
Apply patch #1433271 (code-cleanup) by Stefan Huehner: Add const and static. | |||
Show difference between Revision 1.163 and 1.164 | |||
Revision 1.163 | mwedel | 2006/02/15 01:51:09 | +2 -2 |
Minor bugfixes: server/apply.c: Fix apply_transport ->contr checks to actually check against correct values. server/plugins.c: Replace CFAPI_INT16 with CFAPI_INT - there is no declaration anyplace for CFAPI_INT16 so compiles fails. server/swamp.c: Fix swamp code so that only objects that can be picked up disappear - this way, transports don't disappear into oblivion. MSW 2006-02-15 | |||
Show difference between Revision 1.162 and 1.163 | |||
Revision 1.162 | akirschbaum | 2006/02/10 18:21:10 | +4 -4 |
server/apply.c: In apply_scroll() do not identify the scroll if the player lacks the literacy skill. | |||
Show difference between Revision 1.161 and 1.162 | |||
Revision 1.161 | akirschbaum | 2006/02/10 17:59:27 | +7 -7 |
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.160 and 1.161 | |||
Revision 1.160 | mwedel | 2006/02/07 01:54:46 | +159 -1 |
Code that adds transports. Transports are described more in detail in docs/Developers/objects. --- loader.l: Add new move type ('boat'). Update move_name field to be aware of this type. common/object.c: Unrelated to transport, but more apparant with transports - fix bug with insert_ob_in_map() and multipart objects - we now only try to fix up map and coordinates if the provided coordinates are out of the map. Before, function would always use the passed map for multipart objects, which is incorrect if we have already set valid coordinates. doc/Developers/objects: Update notes for TRANSPORTS. Update move information to include MOVE_BOAT. include/define.h: Add type TRANSPORT. Add MOVE_BOAT. include/player.h: Add transport field to player structure. include/sproto.h: rebuilt. server/apply.c: Add code to handle applying of transports. Update apply_below to apply transport if player is on one. server/attack.c: Update hit_map() to look for transports, and hit any players with the damage. server/c_object.c: Update put_object_in_sack() to also handle TRANSPORTS so that code can be re-used. server/move.c: Fix handling of multipart objects in move_object() - old code didn't work right with multipart objects moving along seams of tiled maps. Add code to move_ob() to update player map position for all players in a moving transport. server/player.c: Update move_player_attack() too check of player is in tranport, and use that for map and location information. Update move_player() to handle speed related issues with transports. server/time.c: Add code to credit time back to TRANSPORT objects since we remove time in move_player() for TRANSPORTS. socket/item.c: Add add_object_to_socklist() so that same code isn't reproduced in 3 different places in the file. Update draw_look() to handle transports - send transport object itself, then objects in transport. Update esrv_send_inventory() and esrv_send_item() to use add_object_to_socklist(). Update esrv_get_ob_from_count() to look for objects in transport if player is in transport. socket/loop.c: Remove checking of pl->map status, since draw_client_map() does that, and we need to handle if the player is in a transport. socket/request.c: Handle map drawing if player is in a transport. MSW 2006-02-06 | |||
Show difference between Revision 1.159 and 1.160 | |||
Revision 1.159 | mwedel | 2006/02/04 23:51:11 | +177 -174 |
No real code change - just making formatting consistent in manual_apply(). One minor note - move check for user being a PLAYER and object be a TREASURE into the case that handles the TREASURE type - this matches with what we do for all the other item types where we care about that. MSW 2006-02-04 | |||
Show difference between Revision 1.158 and 1.159 | |||
Revision 1.158 | ryo_saeba | 2006/01/15 10:50:32 | +5 -1 |
Custom commands fixes. Global logout event change. | |||
Show difference between Revision 1.157 and 1.158 | |||
Revision 1.157 | cavesomething | 2006/01/09 13:35:13 | +3 -1 |
spell listing support | |||
Show difference between Revision 1.156 and 1.157 | |||
Revision 1.156 | akirschbaum | 2006/01/07 12:56:51 | +3 -3 |
Use named constants instead of numbers. | |||
Show difference between Revision 1.155 and 1.156 | |||
Revision 1.155 | akirschbaum | 2006/01/04 15:50:05 | +5 -3 |
Make SIGNs (including Magic Mouths) trigger for DMs again. Does not reduce the counter if in 'wizpass mode. | |||
Show difference between Revision 1.154 and 1.155 | |||
Revision 1.154 | akirschbaum | 2006/01/01 14:36:07 | +6 -1 |
Make EXITs affect DM players again. | |||
Show difference between Revision 1.153 and 1.154 | |||
Revision 1.153 | akirschbaum | 2006/01/01 07:03:05 | +2 -1 |
Properly unready forgotten spells. Prevents crashing the server if casting a forgotten spell. | |||
Show difference between Revision 1.152 and 1.153 | |||
Revision 1.152 | akirschbaum | 2005/12/07 14:29:18 | +5 -2 |
server/apply.c: In player_apply() do not consider DM PLAYERs to be DM-created items. This prevents the server from destroying the player object (and crashing shortly afterwards). | |||
Show difference between Revision 1.151 and 1.152 | |||
Revision 1.151 | akirschbaum | 2005/12/05 16:58:35 | +29 -12 |
Fix bug #1173563 (Creator created Bombs malfunction): Creators and Converters now copy items from inventory. Fallback (for empty inventory) is the old behavior to create the new item from other_arch. If the inventory contains more than one item, a random one is picked. | |||
Show difference between Revision 1.150 and 1.151 | |||
Revision 1.150 | akirschbaum | 2005/12/02 15:09:13 | +2 -2 |
server/apply.c: In move_apply() properly decrement recursion counter. | |||
Show difference between Revision 1.149 and 1.150 | |||
Revision 1.149 | mwedel | 2005/11/16 02:16:08 | +243 -236 |
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.148 and 1.149 | |||
Revision 1.148 | akirschbaum | 2005/10/28 14:08:53 | +4 -2 |
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.147 and 1.148 | |||
Revision 1.147 | cavesomething | 2005/10/21 14:03:24 | +3 -2 |
make shops check if a player can afford all items, before buying any of them | |||
Show difference between Revision 1.146 and 1.147 | |||
Revision 1.146 | gros | 2005/10/18 11:54:31 | +38 -118 |
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.145 and 1.146 | |||
Revision 1.145 | qal21 | 2005/10/16 17:32:46 | +2 -1 |
Clarify comment slightly. | |||
Show difference between Revision 1.144 and 1.145 | |||
Revision 1.144 | ryo_saeba | 2005/10/09 03:49:59 | +30 -1 |
Fix bug in key/value. Can now drop item when applying food/potion/poison. | |||
Show difference between Revision 1.143 and 1.144 | |||
Revision 1.143 | ryo_saeba | 2005/10/08 04:56:43 | +1 -68 |
Removed gps code. Added GetMarkedItem to Python | |||
Show difference between Revision 1.142 and 1.143 | |||
Revision 1.142 | akirschbaum | 2005/10/07 14:38:49 | +3 -3 |
Make damage done by area spells not depend on monster size. include/sproto.h, server/attack.c: Add additional parameter "full_hit" to hit_map() and hit_player(). If set, do full damage, if unset scale down by monster size. server/{apply.c, attack.c, disease.c, monster.c, player.c, rune.c, spell_attack.c, spell_effect.c, spell_util.c, time.c}: Change callers to set "full_hit" parameter according to the attack used. | |||
Show difference between Revision 1.141 and 1.142 | |||
Revision 1.141 | akirschbaum | 2005/10/06 18:36:20 | +1 -2 |
server/apply.c: In prepare_weapon() do not lose a reference to the item name. | |||
Show difference between Revision 1.140 and 1.141 | |||
Revision 1.140 | cavesomething | 2005/10/02 22:29:41 | +11 -2 |
add support for specialised shops | |||
Show difference between Revision 1.139 and 1.140 | |||
Revision 1.139 | ryo_saeba | 2005/10/01 11:36:35 | +6 -4 |
Clean some compilation warnings. | |||
Show difference between Revision 1.138 and 1.139 | |||
Revision 1.138 | ryo_saeba | 2005/09/24 04:49:49 | +3 -3 |
Fixes after party patch | |||
Show difference between Revision 1.137 and 1.138 | |||
Revision 1.137 | qal21 | 2005/09/15 20:02:06 | +50 -3 |
Allow directors/movers to specify a specific arch/name/race. | |||
Show difference between Revision 1.136 and 1.137 | |||
Revision 1.136 | akirschbaum | 2005/09/13 14:41:09 | +6 -3 |
Make untriggered TIMED_GATEs work again. | |||
Show difference between Revision 1.135 and 1.136 | |||
Revision 1.135 | akirschbaum | 2005/09/09 16:09:40 | +3 -3 |
Allow a DM to cast spells and prayers in no-magic/no-prayer areas. Add new command "wizcast" to toggle this setting. | |||
Show difference between Revision 1.134 and 1.135 | |||
Revision 1.134 | akirschbaum | 2005/09/04 11:58:12 | +4 -4 |
common/{anim.c, image.c, los.c, map.c, porting.c, treasure.c}, include/define.h, random_maps/treasure.c, server/{apply.c, c_misc.c, c_object.c, c_wiz.c, commands.c, daemon.c, hiscore.c, init.c, login.c, player.c, plugins.c, resurrection.c, weather.c}, socket/{init.c, item.c, loop.c, lowlevel.c}: Use LOG() for error messages and debug output instead of stdout/stderr. Include filename in error messages. server/resurrection.c: Fix error message in read_player(). | |||
Show difference between Revision 1.133 and 1.134 | |||
Revision 1.133 | ryo_saeba | 2005/08/12 08:46:34 | +10 -10 |
Fields changed from char* to const char*, cleanup. | |||
Show difference between Revision 1.132 and 1.133 | |||
Revision 1.132 | ryo_saeba | 2005/08/10 08:38:31 | +3 -3 |
Use ARCH_DEPLETION instead of depletion. | |||
Show difference between Revision 1.131 and 1.132 | |||
Revision 1.131 | akirschbaum | 2005/07/19 17:52:39 | +9 -4 |
server/apply.c: Properly terminate destination string with '\0' in apply_item_transformer(). Avoid clearing the string buffer multiple times. | |||
Show difference between Revision 1.130 and 1.131 | |||
Revision 1.130 | ryo_saeba | 2005/07/19 15:59:34 | +6 -6 |
Don't hardcode values. Fix item transformer code. | |||
Show difference between Revision 1.129 and 1.130 | |||
Revision 1.129 | akirschbaum | 2005/07/17 05:57:09 | +1 -2 |
Remove unused variable. | |||
Show difference between Revision 1.128 and 1.129 | |||
Revision 1.128 | akirschbaum | 2005/07/17 04:44:30 | +38 -10 |
server/apply.c: Make converters that increase value non-functional. | |||
Show difference between Revision 1.127 and 1.128 | |||
Revision 1.127 | akirschbaum | 2005/05/21 14:33:10 | +5 -1 |
server/apply.c: Do not unlock LAMP items when turning them on or off. | |||
Show difference between Revision 1.126 and 1.127 | |||
Revision 1.126 | tchize | 2005/05/21 12:35:31 | +9 -6 |
Added support for readable subtypes in sign managements. Added some documentation on readable subtypes in the form Now signs should show nice on new clients (if you except my awful drawings) | |||
Show difference between Revision 1.125 and 1.126 | |||
Revision 1.125 | akirschbaum | 2005/05/21 12:18:23 | +5 -1 |
server/apply.c: Fix CONVERTER items with slaying "money" to trigger for MONEY items only. | |||
Show difference between Revision 1.124 and 1.125 | |||
Revision 1.124 | ryo_saeba | 2005/05/07 11:07:26 | +3 -3 |
Fix compilation issue, remove unused variable | |||
Show difference between Revision 1.123 and 1.124 | |||
Revision 1.123 | tchize | 2005/05/07 06:51:20 | +1 -5 |
Corrected silinesses in code. Now compiles when CFLAGS=-ansi -pedantic | |||
Show difference between Revision 1.122 and 1.123 | |||
Revision 1.122 | tchize | 2005/05/06 16:10:24 | +15 -5 |
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.121 and 1.122 | |||
Revision 1.121 | ryo_saeba | 2005/04/27 16:43:28 | +4 -4 |
Change some char* to const char* | |||
Show difference between Revision 1.120 and 1.121 | |||
Revision 1.120 | mwedel | 2005/04/27 01:25:15 | +57 -50 |
Change to have objects generated by creator properly fixed up (material, for potions, spell object, etc). --- common/treasure.c: add GT_MINIMAL flag to change_treasure() to do minimal processing for objects created. include/treasure.h: Add GT_MINIMAL define. server/apply.c: Add call to fix_generated_item() in convert_item() MSW 2005-04-27 | |||
Show difference between Revision 1.119 and 1.120 | |||
Revision 1.119 | ryo_saeba | 2005/04/15 15:56:38 | +90 -1 |
New item type: 163 item transformer, see doc | |||
Show difference between Revision 1.118 and 1.119 | |||
Revision 1.118 | akirschbaum | 2005/03/06 14:38:53 | +2 -2 |
common/{map.c, readable.c, treasure.c}, crossedit/Attr.c, server/{apply.c, attack.c, c_wiz.c, init.c, monster.c, pets.c, shop.c, skill_util.c, skills.c, spell_attack.c, spell_effect.c, time.c}, socket/{info.c, request.c}: Add missing newline character to LOG() messages. | |||
Show difference between Revision 1.117 and 1.118 | |||
Revision 1.117 | majorwoo | 2005/02/27 12:05:44 | +2 -1 |
Applied patch 1144782 - Fix town portal to maps that have reset | |||
Show difference between Revision 1.116 and 1.117 | |||
Revision 1.116 | akirschbaum | 2005/02/20 14:43:13 | +13 -5 |
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.115 and 1.116 | |||
Revision 1.115 | mwedel | 2004/12/29 02:45:07 | +9 -5 |
common/regexp.c: Fixed couple flaws in regexp handling. First, there was an off by one error in the handling of matches (if the match was for example eureca, player could just say eurec, and it would treat that as a valid match). Second case was that the regular expression logic would not try comparing the rest of the passed in string after a partial match - In the eureca case above, if the passed in string was 'where is eureca', after matching the first e (in where), it then fails to match the to prevent unpaid objects from teleporting out of the shop. Also extend code so that non living objects can't use shop mats. server/player.c: Insert force into the player when they die making them immune to any spells on the space they reappear on - this prevents multiple deaths if there is large spell effect going on in the savebed location. Duration of force should be long enough for most spells to run their course, but no so long that the player can use it for much of an advantage (plus, killing yourself to get such an advantage seems odd, and the force only makes the player immune to the attacktypes currently on the space) server/spell_effect.c: Fix spell casting walls (lighting wall, firewall, etc) in that the spell object they cast was not being inserted, resulting in the walls not doing anything. MSW 2004-12-28 Applied patch (bug misc/zoo2) by Lalo server/time.c: creators can now create multi part objects. Applied patch 1086102 by Salathar: server/attack.c: If player kills another player, add (pk) to the death message. Applied patch 1086103 by Salathar: server/move.c: If player pushes another player, send message to both players that pushed happened. Previously, when pushing another player, the pusher wouldn't get any notice. MSW 2004-12-28 | |||
Show difference between Revision 1.114 and 1.115 | |||
Revision 1.114 | mwedel | 2004/10/18 01:54:36 | +7 -9 |
Fix some bugs I introduced in my last commit. common/map.c: Add back in call to sum_weight that got removed when removing the object checking code. common/treasure.c: Have fix_generated_item() blank out the randomitems field after it has created treasure. server/apply.c: Only clear randomitems after create_treasure() - don't presume it should get blanked out for other reasons - with change to treasure.c above, this should be more reliable and fix starting skill issue, as randomitems was getting blanked out for CLASS object. server/main.c: Change processing of players a little - found crash where autosave was called for a removed player (map had got swapped out) - don't do autosave logic if player is removed. Move the autosave code to after the players action, so that can just have a single check of removed status. MSW 2004-10-17 | |||
Show difference between Revision 1.113 and 1.114 | |||
Revision 1.113 | mwedel | 2004/10/15 02:09:40 | +27 -16 |
common/living.c: Fix exp functions to use the player objects expmul value when determining level gains, and not the skills. Also, fix bug where players last hp/sp/grace gain I think was being re-rolled when player gained level in skill. common/loader.l, loader.c: Add better recording of non existant objects (no archetype for them) in maps. Also, handle such objects in players inventories properly (which is to just discard them) common/map.c: Add better logging about discarded archetypes. Since the loader now deals with objects without archs in inventories, that code doesn't need to be in the server. common/object.c: copy_object() was not properly nulling out the next field in the event object, pointer to event list was also incorrect, causing events to not be copied properly. doc/spoiler-html/spoiler.html: Rebuilt. server/apply.c: Apply patch by MT that fixes problem of entire inventory not being copied properly. Fix problem that objects in creatures were not having any sub treasure created (eg, put a pyro_book in a monster on the map, and the pyro_book wouldn't have a spell in it) - now we make sure we process inventory objects as well as map objects, creating treasure as needed. server/monster.c: Reverse order of cast_spell() and drain_rod() in monster_use_range() - drain_rod() should go first, because case_spell() can in rare cases destroy the rod. MSW 2004-10-14 | |||
Show difference between Revision 1.112 and 1.113 | |||
Revision 1.112 | mwedel | 2004/08/17 01:41:04 | +8 -1 |
server/apply.c: fix_auto_apply() - add some debugging statements, as I've seen crashes caused by monsters with scrolls with no spells - need to figure out how those are showing up. server/c_wiz.c: command_kick() - fix occasional crashes when player isn't on any map when kicked. command_create() largely rewritten so it doesn't crash the server on any malformed values passed in, add some more features so it should be easier to create objects. MSW 2004-08-16 | |||
Show difference between Revision 1.111 and 1.112 | |||
Revision 1.111 | ryo_saeba | 2004/08/16 03:47:04 | +6 -2 |
Fix bug #989110, mutating spellbooks | |||
Show difference between Revision 1.110 and 1.111 | |||
Revision 1.110 | ryo_saeba | 2004/05/15 13:15:35 | +68 -1 |
Added a positioning system | |||
Show difference between Revision 1.109 and 1.110 | |||
Revision 1.109 | mwedel | 2004/05/14 02:35:26 | +12 -1 |
server/apply.c: Fix fix_auto_apply() so we don't generate additional spells for spellcasting objects that already have them (regression from fix from 5/11 below) MSW 2004-05-13 | |||
Show difference between Revision 1.108 and 1.109 | |||
Revision 1.108 | mwedel | 2004/05/12 02:14:38 | +11 -2 |
server/apply.c: modify fix_auto_apply() so that it properly generates items for creatures that start with objects in their inventory. MSW 2004-05-11 | |||
Show difference between Revision 1.107 and 1.108 | |||
Revision 1.107 | ryo_saeba | 2004/05/08 08:38:05 | +38 -4 |
Add settings to control armor enchantment | |||
Show difference between Revision 1.106 and 1.107 | |||
Revision 1.106 | mwedel | 2004/05/05 02:25:54 | +14 -12 |
server/apply.c: Fix apply_special() to properly deal with LAMP objects - it wasn't dealing properly with the split off lamp compared to the one it was supposed to deal with - was crashing server. MSW 2004-05-04 | |||
Show difference between Revision 1.105 and 1.106 | |||
Revision 1.105 | mwedel | 2004/04/26 00:27:36 | +3 -1 |
server/apply.c: apply_savebed() - make call to terminate_all pets before call to remove_ob() so that pets are properly removed. | |||
Show difference between Revision 1.104 and 1.105 | |||
Revision 1.104 | mwedel | 2004/04/25 02:17:40 | +2 -2 |
Change most shop buy/sell functions to use 64 bit values. Problem arises where player would sell valuable item, and if they wanted to buy them back, it would overflow a 32 bit value, so they could buy them back for free. Note quite as odd when you consider the buy/sell price for really valuable items to be very different. include/global.h: Add UINT32_MAX and other max type defines for our typedef values so that we have standard setting of what the cap is. server/apply.c: Change get_payment call to take second argument. server/plugins.c: Add note about bug in handling of query_cost in this function. server/shop.c: query_cost() now returns 64 bit. Many other functions updated to also take/return 64 bit cost values. Have cost_string nicely deal with values that are beyond affordability. Rename get_payment2() to get_payment(), and remove the later, which was just a simple wrapper function that called get_payment2. server/spell_effect.c: Update alchemy code. Remove some suspect use of static values. MSW 2004-04-24 | |||
Show difference between Revision 1.103 and 1.104 | |||
Revision 1.103 | ryo_saeba | 2004/04/22 16:55:07 | +140 -59 |
Fixed & wrote some comments | |||
Show difference between Revision 1.102 and 1.103 | |||
Revision 1.102 | mwedel | 2004/04/21 01:44:40 | +11 -1 |
server/apply.c: fix check_weapon_power() so it operates on overall character level and not skill level - this matches up what the out of skills displays. MSW 2004-04-20 | |||
Show difference between Revision 1.101 and 1.102 | |||
Revision 1.101 | mwedel | 2004/04/18 02:59:36 | +2 -25 |
common/button.c: Patch by Bernd Edler to have proper speed set for items activated by buttons. server/apply.c: Apply the 'special prayer' marker stuff, since it wasn't used anymore. server/gods.c: Check for FLAG_EQUIP on spells and not for a special prayer marker to guess if a spell is a god given spell or not. server/spell_util.c: Patch by Bernd Edler so that firewalls are immune to casting time. MSW 2004-04-17 | |||
Show difference between Revision 1.100 and 1.101 | |||
Revision 1.100 | ryo_saeba | 2004/03/12 13:04:14 | +2 -2 |
Change join/leave messages color, make DMs more 'stealthy' | |||
Show difference between Revision 1.99 and 1.100 | |||
Revision 1.99 | ryo_saeba | 2004/02/27 17:00:27 | +6 -5 |
Some warnings cleaning. | |||
Show difference between Revision 1.98 and 1.99 | |||
Revision 1.98 | mwedel | 2004/02/17 23:28:54 | +2 -2 |
Fix bug with item_power not being summed properly when determining if players can equip items or not. MSW 2004-02-17 | |||
Show difference between Revision 1.97 and 1.98 | |||
Revision 1.97 | ryo_saeba | 2004/02/16 12:05:32 | +1 -3 |
Cleaned some unused fields. Type coherence. | |||
Show difference between Revision 1.96 and 1.97 | |||
Revision 1.96 | mwedel | 2004/02/07 22:24:49 | +2 -1 |
apply(): Allow players to manually apply skill tools. player.c: Tell player when invisibility spells expire. MSW 2004-02-07 | |||
Show difference between Revision 1.95 and 1.96 | |||
Revision 1.95 | ryo_saeba | 2004/01/18 04:36:10 | +16 -1 |
Added map-building code. | |||
Show difference between Revision 1.94 and 1.95 | |||
Revision 1.94 | ryo_saeba | 2003/11/25 12:49:32 | +4 -4 |
Skill name when learning. Sense curse and sense magic on items on ground | |||
Show difference between Revision 1.93 and 1.94 | |||
Revision 1.93 | mwedel | 2003/11/11 01:37:10 | +15 -10 |
server/apply.c: Fix check_weapon_power so that it finds proper wc object. Fix unapply_for_ob so that it won't unequip cursed/damned weapons if player switches objects. MSW 2003-11-11 | |||
Show difference between Revision 1.92 and 1.93 | |||
Revision 1.92 | mwedel | 2003/11/09 23:39:50 | +5 -28 |
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.91 and 1.92 | |||
Revision 1.91 | ryo_saeba | 2003/10/24 15:02:30 | +3 -2 |
Fix apply_spellbook to return when spell is null before doing spell->level :) | |||
Show difference between Revision 1.90 and 1.91 | |||
Revision 1.90 | mwedel | 2003/10/14 01:54:47 | +2 -2 |
server/apply.c: fix bug so that we don't re-do treasures for objects that have already had them made. server/attack.c: Fix bug with monsters with drain causing cores. server/player.c: Fix spell gaining for dragon players. Use actual spell object. MSW 2003-10-13 | |||
Show difference between Revision 1.89 and 1.90 | |||
Revision 1.89 | mwedel | 2003/10/07 02:02:02 | +31 -9 |
TODO: various updates. common/button: Old patch by David Seikel: change inventory checkers so that the monster/player is also checked against. And do more proper for checkers that check against slaying or race - if the trigger doesn't have those set, we don't want to compare a null against another null and get success). server/apply.c: Change apply_shop_mat() so that it removes unpaid objects from monsters (or thrown containers for that matter). Old patch by Bernd Edler to improve messages dragons get for eating various food types. server/player.c: Add another missing call to fix_player(). Modify move_player_attack() so that the target player doesn't hit back if they are the WIZ or on a battleground MSW 2003-10-06 | |||
Show difference between Revision 1.88 and 1.89 | |||
Revision 1.88 | mwedel | 2003/09/13 13:30:55 | +3 -2 |
Fix apply.c compile error. MSW 2003-09-13 | |||
Show difference between Revision 1.87 and 1.88 | |||
Revision 1.87 | mwedel | 2003/09/13 00:02:07 | +458 -461 |
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.86 and 1.87 | |||
Revision 1.86 | temitchell | 2003/09/04 01:25:32 | +3 -4 |
- add new type TRAP, make initial seperations from RUNE in code add in traps triggering stuff if they are detonated | |||
Show difference between Revision 1.85 and 1.86 | |||
Revision 1.85 | tchize | 2003/09/03 07:25:06 | +58 -56 |
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.84 and 1.85 | |||
Revision 1.84 | gros | 2003/06/26 06:27:43 | +30 -24 |
Re-implemented the event hooks in objects as a dynamically linked list, instead of a static table. | |||
Show difference between Revision 1.83 and 1.84 | |||
Revision 1.83 | mwedel | 2003/06/19 01:52:49 | +2 -2 |
server/apply.c: Fix auto_apply - missing else, causing extra treausres to be generated inside of shop tiles. server/monster.c: Fix npc_call_help to be map tile aware. MSW 2003-06-18 | |||
Show difference between Revision 1.82 and 1.83 | |||
Revision 1.82 | mwedel | 2003/05/23 23:51:12 | +6 -4 |
server/apply.c: Fix bug in that we weren't calling esrv_map_scroll() when player used a shop map but lacked sufficient funds to pay for his items. MSW 2002-05-23 | |||
Show difference between Revision 1.81 and 1.82 | |||
Revision 1.81 | mwedel | 2003/03/20 01:57:56 | +27 -17 |
server/apply.c: Change weapon improving code to only use up the number of potions that it needs, and not all on the ground. Required adding another arg to eat_item() which is the number of items to consume. include/sproto.h: Rebuilt for new eat_item() (actually, a static, so no longer shows up in this file) MSW 2003-03-19 | |||
Show difference between Revision 1.80 and 1.81 | |||
Revision 1.80 | mwedel | 2003/03/07 23:35:32 | +4 -4 |
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.79 and 1.80 | |||
Revision 1.79 | mwedel | 2003/02/11 23:40:24 | +13 -2 |
server/apply.c: Fix bug in that cursed weapons were not equipped/ unequipped. MSW 2003-02-11 | |||
Show difference between Revision 1.78 and 1.79 | |||
Revision 1.78 | garbled | 2003/01/29 18:07:09 | +2 -2 |
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.77 and 1.78 | |||
Revision 1.77 | garbled | 2003/01/17 01:24:54 | +3 -3 |
Fix the fact that shops ignored the difficulty of the map when generating shop items. Shops now default to level 5, or difficulty.. whichever is higher. Retained the old behavior where you could set the level of an individual tile with the exp stat, which takes precedence over everything. | |||
Show difference between Revision 1.76 and 1.77 | |||
Revision 1.76 | garbled | 2003/01/08 22:20:26 | +5 -2 |
Rewrite alchemy slightly. Now in the formula, we include a difficulty (percentage) and the experience value for the formula. We no longer adjust the experience given by the difficulty of the map. We no longer use the number of items to determine difficulty, rather we use the difficulty rating in the formula. We no longer multiply the experience given by the yield of the product, one "casting" one exp. When writing formulae, calculate the difficulty in when setitng the exp, because it is not multiplied in any way. Fix a bug in Mark's new armour enchantment stuff. Send the item to the player, otherwise they mysteriously dissapear, and only add the split items back if they were spilt, avoiding a segv when enchanting a single piece of armour. Change alchemy skills to only utilize cauldrons directly beneath the user.. the other behavior was getting annoying. This should slow down the abusive nature of alchemy. The exp settings and difficulty levels probably should be tuned better. Feel free. | |||
Show difference between Revision 1.75 and 1.76 | |||
Revision 1.75 | mwedel | 2003/01/08 02:39:18 | +41 -29 |
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.74 and 1.75 | |||
Revision 1.74 | garbled | 2003/01/07 03:39:15 | +71 -4 |
Add code for lanterns. These lanterns can be turned on and off. This should make nighttime in the bigworld a bit easier to handle. | |||
Show difference between Revision 1.73 and 1.74 | |||
Revision 1.73 | mwedel | 2002/12/21 02:02:33 | +2 -2 |
Various bug fixes: common/living.c: Reset glow_radius for players, so they stop glowing after they snuff out their torch or whatever. server/apply.c: Fix message about improving armour so that it is now accurate. server/monster.c: Add some debug lines that may show cause of excess monster hp. server/spell_effect.c: fix compile warning in summon_pet(). Clean up indentation of alchemy functions, but functional changes is to insert gold nuggets below player (so more of the actions work), as well as to reset the view position, so that it won't have the 'previous 50' object selection. Add suggested parens in cast_detection. server/weather.c: Fix crash in weather code if snow was only object on space. MSW 2002-12-20 | |||
Show difference between Revision 1.72 and 1.73 | |||
Revision 1.72 | garbled | 2002/12/12 17:48:10 | +22 -5 |
Allow enchant weapon scrolls to be read against bows. Since bows and swords can no longer be wielded together.. this isn't a problem anymore. | |||
Show difference between Revision 1.71 and 1.72 | |||
Revision 1.71 | mwedel | 2002/11/30 21:46:25 | +46 -24 |
common/object.c, include/object.h: Add INS_BELOW_ORIGINATOR flag to insert_ob_in_map - this is used for treasure chests so the treasure is put below the player. Also fix insertiong of items on spaces that block view - put them in proper order, and not just directly above the floor server/apply.c: Tell player what level they need to be if they are not of sufficient level to improve armor. Modify apply_treasure to use INS_BELOW_ORIGINATOR flag, clean up some of the other logic in apply_treasure. server/c_object.c: Modify command_take to use the container inventory when doing a pickup, and not the container itself. MSW 2002-11-30 | |||
Show difference between Revision 1.70 and 1.71 | |||
Revision 1.70 | mwedel | 2002/11/29 22:17:41 | +1 -2 |
TODO: Updated with dm 'follow' command. common/loader.l: Rebuilt. common/map.c: Fix up some formatting - no code change. include/player.h, server/apply.c, server/player.c, socket/info.c: Remove chosen_item_spell field - isn't needed anymore as that information is determined each time player fires wand/rod/horn. This fixes those items firing magic bullets if they were equipped when player saved and rejoined. Some additional cleanup done in rangetostring() - mostly formatting changes, but minor code changes. MSW 2002-11-29 | |||
Show difference between Revision 1.69 and 1.70 | |||
Revision 1.69 | garbled | 2002/11/26 02:48:20 | +1 -11 |
Get rid of #ifdef PLUGINS (it is on by default, I didn't take out gros's code) | |||
Show difference between Revision 1.68 and 1.69 | |||
Revision 1.68 | garbled | 2002/11/12 18:26:13 | +25 -41 |
#ifdef SPELL_ENCUMBRANCE -> settings.spell_encumbrance #ifdef SPELL_FAILURE_EFFECTS -> settings.spell_failure_effects | |||
Show difference between Revision 1.67 and 1.68 | |||
Revision 1.67 | mwedel | 2002/09/28 02:19:39 | +9 -1 |
Mostly bugfixes, but the addition of a wiz 'hide' command which makes the wiz out of sight so to speak. -- common/loader.l, common/loader.c: Fix bug where flag values were being saved with actual value of the flag (eg, 32768, 16, etc) instead of 1/0 value - Code effectively worked the same, just was a bit odd looking at save files. include/player.h: Add hidden element to player structure. include/sproto.h: Add command_hide(), update proto for players_on_map() lib/Makefile.am, lib/Makefile.in: add wizhelp/hide file. server/apply.c: Add error checking to converts so it doesn't crash if the converter doesn't have a proper other_arch. Modify shopmats so that they don't transport spell effects, like fireballs an burning hands. server/attack.c: Modify code so players can drain other players exp. server/c_misc.c: Modify various functions to not show info on hidden DM. server/c_wiz.c: Add command_hide(), clean up command_invisible() a bit. server/commands.c: Add hide command to dispatch table. server/main.c: Add code to not update players on map for hidden dm. server/player.c: Give hidden dm perpetual invisiblity. server/skills.c: Only get exp if you actually stole an item - fixes abuse whereby players who couldn't carry item could continually 'steal' it from monster and just gain exp. server/swap.c: modify players_on_map() to take addition arg to determine if real players on map should be shown, or if we shouldn't count hidden dms. socket/info.c: Modify code so that oldsockets don't get reports on high verbose messages. socket/metaserver.c: Modify metaserver update to not include hidden dms. utils/Makefile.in: update datestmp. MSW 2002-09-27 | |||
Show difference between Revision 1.66 and 1.67 | |||
Revision 1.66 | mwedel | 2002/09/23 01:27:54 | +2 -2 |
server/apply.c, server/c_wiz.c, server/player.c: When players saves, reset pl->map to be NULL - otherwise, the map they saved on can reset, and the memory pl->map points to gets re-used, so when it tries to access that memory, it crashes. Changes to apply.c and c_wiz.c necessary to make sure we do map cleanup before calling play_again. MSW 2002-09-22 | |||
Show difference between Revision 1.65 and 1.66 | |||
Revision 1.65 | mwedel | 2002/08/26 02:14:11 | +15 -2 |
Various bugfixes: common/map.c: Change so that same logic is used to determine pclose/fclose that is used to determine popen/fopen - otherwise, compressed map files probably don't work properly. common/treasure.c: Do a memset to make sure entire treasureslist is set to sane values. lib/archetypes: Fix 'slaying' field (which determines spell name) in god_spelldirect_face_of_death and god_spelldirect_finger_of_death server/apply.c: Fix infinite loop if the player had cursed items that needed to be unapplied to apply an item - setting up next item iteration was inside if check when it shouldn't be. Also, print message to player if this is the case. server/monster.c: Better format some of the code for improved readability. Fix indentation of can_see_enemy. Clean up invisiblity check - may have fixed a bug - old code should have worked, but wasn't very readable. server/move.c: Fix some bad code from last checkin - didn't fix the crash on no floor for door type, and instead removed check type from next line by accident. server/player.c: Remove call for init_beforeplay - this is already properly called, and re-calling it resulted in some things being redone when they shouldn't be. server/skills.c: Add message if there is nothing to steal form the monster. server/spell_effect.c: Improve message when invisiblity duration is maximized. socket/init.c: change O_NDELAY to O_NONBLOCK of fcntl. MSW 2002-08-25 | |||
Show difference between Revision 1.64 and 1.65 | |||
Revision 1.64 | mwedel | 2002/07/16 00:21:24 | +19 -22 |
lib/Makefile.in: add a 'archonly' directive that only collects archetypes and doesn't collect images. lib/archetypes: rebuilt for fixes made to arches. lib/collect.pl.in: modified to take second parameter -ARCHONLY, that causes it not to save out animation, bmaps and faces file. server/apply.c: Change order of print when applying/unapplying - print out the 'you apply/unapply' before we print out the changes that applying the item does. It seems odd for it to be 'you feel stronger. you apply xyz'. Fix can_apply_object() so that if a player needs to unapply several items, the right return code is returned and we don't say the player has a choice. server/player.c: Fix missing clearing of player->next. MSW 2002-07-15 | |||
Show difference between Revision 1.63 and 1.64 | |||
Revision 1.63 | mwedel | 2002/07/14 23:57:13 | +546 -364 |
-- 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.62 and 1.63 | |||
Revision 1.62 | mwedel | 2002/06/07 02:00:44 | +10 -3 |
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.61 and 1.62 | |||
Revision 1.61 | mwedel | 2002/03/20 00:27:46 | +23 -22 |
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.60 and 1.61 | |||
Revision 1.60 | avogl | 2002/03/03 14:05:58 | +4 -5 |
two fixes to my dragon-race code: - fixed stringcompares wich caused crashed with players that have race NULL. - forgot to commit "server/init.c" before, which resulted in function dragon_ability_gain() not to get bound, thus missing dragon ability gains. | |||
Show difference between Revision 1.59 and 1.60 | |||
Revision 1.59 | avogl | 2002/03/01 15:33:11 | +194 -27 |
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.58 and 1.59 | |||
Revision 1.58 | jbontje | 2002/02/13 15:10:03 | +2 -2 |
server/main.c: If exit is damned, update players death & WoR home-position and delete town portal. server/apply.c: Fix bug in move_apply. return was used instead of goto leave, so recursion_depth wasn't decremented. mids 02/13/2002 | |||
Show difference between Revision 1.57 and 1.58 | |||
Revision 1.57 | avogl | 2002/02/08 09:43:31 | +4 -2 |
another small patch: Monsters will no longer trigger magic_mouths with a counter set. (Magic_mouths with a counter value display their message only that many times.) | |||
Show difference between Revision 1.56 and 1.57 | |||
Revision 1.56 | avogl | 2002/02/08 09:07:45 | +6 -1 |
Patch: Monsters can no longer apply random chests. Random chests are designed for players to open IMO. | |||
Show difference between Revision 1.55 and 1.56 | |||
Revision 1.55 | mwedel | 2002/02/05 23:54:46 | +5 -3 |
common/map.c: load_map_header: If the map message is empty, don't copy uninitialized data as the message. This fixes various crashes. lib/Makefile.in: Remove the adm/*xpm* utilities, as they are no longer needed or distributed. server/apply.c: set the player speed to zero after they use a savebed. Fixes crashes with players that have constant image animation (fireborns) when they apply the savebed and the map then gets swapped out. server/plugins.c: Fix some serious memory leaks. Some still remain, with my comments included. server/skills.c: Removed unused variable. MSW 2002-02-05 | |||
Show difference between Revision 1.54 and 1.55 | |||
Revision 1.54 | garbled | 2001/12/18 02:58:03 | +9 -4 |
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.53 and 1.54 | |||
Revision 1.53 | michtoen | 2001/11/26 22:33:46 | +0 -0 |
Arch type & subtype patch Added type & subtype system with 2 subtypes. Type & subtype will be send to client. Adding new types: FLOOR 71 WALL 77 LIGHT_SOURCE 78 MISC_OBJECT 79 MONSTER 80 SPAWN_GENERATOR 81 Added subtypes for armor & weapons. new commands are: sub_type <uint8> sub_typ2 <uint16> sub_type2 is for internal server use. Added new command: casting_speed <delay> This will be included later. I will use the sdl client as tester for this patch, older clients will not be effected even when the arches are updated. | |||
Show difference between Revision 1.52 and 1.53 | |||
Revision 1.52 | michtoen | 2001/11/26 11:52:26 | +8 -2 |
Attack Patch 25.11.01 Detailed information in the dev list. The changes are to many to explain here. | |||
Show difference between Revision 1.51 and 1.52 | |||
Revision 1.51 | tchize | 2001/11/11 06:37:10 | +2 -101 |
server/plugins.c: adding new hooks to handle the animation of an object to clone an object a wrapper to apply_below command a wrapper to teleport object a wrapper to communicate Their purpose is to prepare the arrival of plugin_animator | |||
Show difference between Revision 1.50 and 1.51 | |||
Revision 1.50 | gros | 2001/11/11 03:39:54 | +2 -1 |
Some bugfixes, new timer system, support for custom plugins commands, new plugin hooks - Gros 11/11/01 | |||
Show difference between Revision 1.49 and 1.50 | |||
Revision 1.49 | garbled | 2001/10/31 01:00:24 | +2 -2 |
Big commit time. This does the following: Add weapontypes to the game. These are currently used for nothing other than messages, which are not fully written yet. Players should not see them appear yet. Fix the bug where you opened a door with a key and saw "You ." Fix a bug in the PLUGIN code where current_weapon wasn't set when the player loaded from savefile. Take the setting of current_weapon out of #ifdef PLUGIN garbled 2001-10-31 | |||
Show difference between Revision 1.48 and 1.49 | |||
Revision 1.48 | garbled | 2001/10/15 16:12:08 | +2 -2 |
Remove all instances of RANDOM()% and replace with rndm() from utils.c garbled 2001-10-15 | |||
Show difference between Revision 1.47 and 1.48 | |||
Revision 1.47 | gros | 2001/10/14 02:57:14 | +211 -90 |
Major changes: Added dynamic plugin support, removed old Guile support. - Gros 10/14/01 | |||
Show difference between Revision 1.46 and 1.47 | |||
Revision 1.46 | garbled | 2001/09/26 16:34:08 | +5 -4 |
Apply the big luck patch to all these files. This removes the special cases for alchemy and prayer as well. Discussed at length with dhb, av and gros. Has been tested on both the mids crossfire server, and on my private server. This code removes all current use of the luck stat for players, and replaces it with a general luck modifier for all random rolls. The intent of this code is to give a general positive (or negative) effect on a player due to luck. This effect should be generally intangible to the player, yet help him out over the course of a game. garbled 2001-09-26 | |||
Show difference between Revision 1.45 and 1.46 | |||
Revision 1.45 | mwedel | 2001/09/03 01:44:55 | +49 -42 |
This checkin mainly fixes multipart teleporters - they should now work properly. Also a minor fix to make the new pickup code work. server/apply.c: apply_shop_mat rewritten to be more 'presentable'. Minor changes were needed in any case to pass the player/creature a a second object to teleport. server/c_object.c: change the sscanf to be unsigned when getting value for new pickup mode. At least on my system, if the value in the string was larger than the max signed value, sscanf set it to the max value. server/move.c: teleport function largely re-written. Instead of the third arg being the 'originator', it is now the object to teleport. This allows the head of the teleporter to get passed to this function even if the object to teleport is not on the head. server/time.c: move_teleporter modified to also check for objects on the other parts of multipart teleporters. Also, pass the head object to the teleport function so that proper destination is used. MSW 2001-09-02 | |||
Show difference between Revision 1.44 and 1.45 | |||
Revision 1.44 | mwedel | 2001/07/13 23:11:18 | +87 -82 |
Map tiling checkin server/Makefile.in: Remove encounter.c file. Use cproto instead of cextract to create proto file. server/alchemy.c,server/attack.c,server/c_object.c,server/c_wiz.c, server/disease.c, server/login.c, server/main.c, server/monster.c, server/move.c, server/pets.c, server/player.c, server/resurrection.c, server/rune.c, server/shop.c,server/skill_util.c, server/skills.c, server/spell_effect.c, server/spell_util.c, server/swap.c, server/time.c modified to use modified insert_ob_in_map function, use new macros to access map structure related data. change calls to update_all_los, remove lighting related code. server/apply.c: modified to use new insert_ob_in_map function. Update calls to update_object. remove RANDOM_ENCOUNTER code. for exits, modified to use the head for valid coordinates since the other parts may not have valid values since they are not saved out to disk anymore. server/c_misc.c,server/hiscore.c: modified to use new map structure/information. server/commands.c: remove dumplights command. server/encounter.c: removed - code no longer used server/init.c: remove RANDOM_ENCOUNTERS code. server/script.c: change Script_getMapObject to return NULL since there is no longer a map object. Modify to use new insert_ob_in_map and update_object functions. MSW 2001-07-13 | |||
Show difference between Revision 1.43 and 1.44 | |||
Revision 1.43 | mwedel | 2001/06/29 00:59:46 | +4 -4 |
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.42 and 1.43 | |||
Revision 1.42 | michtoen | 2001/06/13 07:51:58 | +1 -1 |
Modified Files: player.c loader.l loader.c init.c request.c newserver.h Log Message: Removed 2 compiler warning from Scriptfire patch in loader.l/loader.c and script.c. added a new setup cmd: "newanim" a client giving the newanim cmd, will enable the new animation system. The interface is open and not server controlled at this moment. First using is to enable the player moving in 8 direction. Giving this option to a server without changed arch will invoke broken player animations. This will be changed in the future. MT 2001-06-13 | |||
Show difference between Revision 1.41 and 1.42 | |||
Revision 1.41 | michtoen | 2001/06/13 05:51:20 | +193 -25 |
Modified Files: aclocal.m4 configure. configure.in Makefile.in crossfire32.dsw crossfire32.dsp INSTALL_WIN32.txt common: arch.c loader.c treasure.c loader.l crossedit: Attr.c doc: README_EXTENSIONS README_SCRIPT include: autoconf.h define.h global.h includes.h loader.h object.h script.h spellist.h spells.h sproto.h version.h server: Makefile.in apply.c attack.c c_object.c gods.c init.c main.c monster.c player.c script.c script_spells.c script_types.c skills.c spell_effect.c spell_util.c time.c Log Message: Adding Scriptfire 0b11 to Crossfire. Massive changes. The facts are in the doc files. MT 2001-06-13 | |||
Show difference between Revision 1.40 and 1.41 | |||
Revision 1.40 | michtoen | 2001/06/11 13:47:21 | +3 -2 |
change HANDLE to CF_HANDLE | |||
Show difference between Revision 1.39 and 1.40 | |||
Revision 1.39 | mwedel | 2001/06/04 01:41:02 | +5 -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.38 and 1.39 | |||
Revision 1.38 | mwedel | 2001/05/28 23:41:53 | +15 -37 |
Make ALLOW_SKILLS standard part of game (remove #ifdef's for it) Files affected: common/living.c common/object.c common/treasure.c include/config.h include/player.h server/apply.c server/attack.c server/c_move.c server/c_range.c server/c_wiz.c server/commands.c server/init.c server/login.c server/monster.c server/player.c server/rune.c server/skill_util.c server/spell_util.c Make MULTIPLE_GODS standards part of game (remove #ifdefs for it) Files affected: common/readable.c include/spellist.h include/config.h server/attack.c server/gods.c server/skills.c server/spell_effect.c server/spell_util.c doc/Makefile.in, doc/Protocol: Add protocol description file here instead of in the client distribution. include/global.h: Move declaration of MAX_EXP_CAT near top of file so it is set before player.h is included. include/newclient.h: Add CS_STAT_SKILL* values for sending skill experience information to client. include/newserver.h: Add skillexp value to socket struct which determines if client wants skill experience informatiion. include/player.h: Add skill information tracking to player structure so we can easily know when to send updates to client. random_maps/expand2x.c: remove unused variable to prevent compiler warnings. random_maps/square_spiral.c: Include prototype information on all systems, not just win32 to prevent compiler warnings. server/skill_util.c: Initialize skill pointers to make it easier to find skill information when we want to update client. socket/init.c: Init socket->skillexp to 0. socket/loop.c: Fix indentation of table - whitespace change only socket/metaserver.c: Minor fix to prevent compile warnings (on the sprintf that composes the data to send to the metaserver) socket/request.c: Redo SetUp function to be more compact and IMO simpler as wll as easier to read (functionality remains the same). VersionCmd modified to warn users of on dxclients (code on MT) StatsCmd added to send skill information if client wants it. The sending of skill experience is by MT, rest of the changes by me. MSW 2001-05-28 | |||
Show difference between Revision 1.37 and 1.38 | |||
Revision 1.37 | mwedel | 2001/05/24 23:29:01 | +6 -4 |
lib/artifacts: Reduce potency of Poison artifact foods. server/apply.c: When eating poison artifact foods, hit player with poison attacktype instead of just subtracting hp. This way people with poison resistance get proper benefit. MSW 2001-05-24 | |||
Show difference between Revision 1.36 and 1.37 | |||
Revision 1.36 | mwedel | 2001/04/27 01:16:38 | +2 -2 |
server/apply.c: Modify apply_id_altar check for player - had a && instead of a ||. MSW 2001-04-26 | |||
Show difference between Revision 1.35 and 1.36 | |||
Revision 1.35 | darth_bob | 2001/04/07 21:48:45 | +8 -3 |
Fixed my shameful bug that gave away full hp, while only eating 1/100 of a food, dnh | |||
Show difference between Revision 1.34 and 1.35 | |||
Revision 1.34 | darth_bob | 2001/04/06 21:43:53 | +7 -4 |
You can now eat food at any time, although if you eat more than you need you waste it, dnh | |||
Show difference between Revision 1.33 and 1.34 | |||
Revision 1.33 | mwedel | 2001/03/20 23:36:44 | +2 -2 |
server/apply.c: Increase size of buf to be a HUGE_BUF to very long item names don't cause a stack overflow. MSW 2001/03/20 | |||
Show difference between Revision 1.32 and 1.33 | |||
Revision 1.32 | avogl | 2001/02/25 18:06:21 | +7 -6 |
When a magic_mouth has "food <value>" set, it will be used up after being triggered <value> times. But when it is "used up" and is triggered again, the text is displayed: "there is no message". This is very annoying and makes the whole thing useless. Now I patched it so that a "used up" magic_mouth prints no message when triggered again. It's just like the magic_mouth would no longer exist. --AV | |||
Show difference between Revision 1.31 and 1.32 | |||
Revision 1.31 | cvs | 2001/01/31 01:54:52 | +11 -7 |
MSW 2001/01/30: Complete rewrite of the exit handling code. Hopefully as an effect, this will fix the player appearing in the middle of the oceans. I think the code should also work better in many other areas. Main enhancements is a 3x3 area for pets to follow player to new map, as well as golems now following players to the new maps. include/sproto.h, random_maps/rproto.h - rebuilt. random_maps/random_map.c: Change generate_random_map to take a structure with the random map paremeters. random_maps/reader.l, reader.c: Add set_random_map_variable function that reads the map parameters from a char buffer. Also, remove some leftover comments that were from the common/loader.l file. random_maps/rogue_layout.c: Change some functions to be static so make proto doesn't collect them. random_maps/standalone.c: Add opening of parms file into main function since it ws removed from the random_map.c file. server/apply.c: Don't display the message of random maps to the players as they enter them, as this message is random map parameters, and not a real message. server/login.c: #if 0 out using of the player loading element in the structure. this isn't used right now. server/main.c: Bulk of the changes. main changes are to break apart the old enter_exit function into smaller functions that more logically do the needed function (random maps, unique maps, and transferring the player to the new map). random map code now passes the parameters via structure instead of file in /tmp. Code is much more understandable now and hopefully bugfree. server/pets.c: minor changes/bugfixes. Search full SIZEOFFREE array, use real owner variable when print out messages. server/player.c: Remove usage of the loading variable in the player structure. End of MSW 2001/01/30 checking. | |||
Show difference between Revision 1.30 and 1.31 | |||
Revision 1.30 | cvs | 2001/01/23 23:01:37 | +2 -1 |
MSW 2001/01/23: Various cleanups/fixes as detected by purify: common/anim.c: animation[0] was given a null pointer as the name, but bsearch/or comparison function will try to de-reference it. Give it a unique name. common/loader.l: msgbuf was being used initialized in the main loading function. loader.c also regenerated. common/object.c: find_free functions were not checking to see if the spaces they were examining were out of the map. Added checks to do so. server/apply.c: buf was being used initialized in the function. socket/init.c: input buffer needs to be initialized as we do a strncasecmp against the buffer which may not have any data in it. | |||
Show difference between Revision 1.29 and 1.30 | |||
Revision 1.29 | avogl | 2001/01/09 17:50:37 | +10 -6 |
Fixed a terrible bug about special prayers: Players always lost ALL spells on god-intervention! That happened due to several bugs in the new god functions. Well, after this patch it should work as intended. | |||
Show difference between Revision 1.28 and 1.29 | |||
Revision 1.28 | cvs | 2000/12/27 01:53:35 | +109 -13 |
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.27 and 1.28 | |||
Revision 1.27 | peterm | 2000/12/17 20:45:56 | +29 -10 |
Fix for the class stat-max-bug, where certain classes would exceed their racial maxima. Now an extra stat beyond the racial max is reassigned to some other non-CHA stat randomly. PM | |||
Show difference between Revision 1.26 and 1.27 | |||
Revision 1.26 | peterm | 2000/12/15 14:23:52 | +8 -3 |
Fixed some code which caused an unnecessary server exit. move_apply CAN recurse many times when the code is operating properly. For example, in a room full of rune_summon_water. a rune is triggerd. 5 water elementals appear and land on neighboring runes. they go off. each summons 5 more elementals, etcetera. The recursion ends naturally and correctly when all the runes are consumed. PeterM | |||
Show difference between Revision 1.25 and 1.26 | |||
Revision 1.25 | avogl | 2000/12/13 21:52:33 | +6 -2 |
PR-patch by AndreasV: Main features of this patch: o Negative resistances are calculated in a "logical" way. For example: +30 and -30 makes a total of zero. o Vulnerabilities work as "caps" for protection. E.g.: While wearing one item with fire -20, you cannot get more than fire +80 overall from equipment. If one is forced to live with high vulnerability (like wraith: fire -30), you can still use a potion to go beyond the cap. o Potions work completely different than before. The so-called "immunity-potions" grant an absolute value of 90% protection (independant from the players's equipment and properties), there are also very rare ones with 95% and cheap ones with 50%. If the player has already got more protection than the potion provides, drinking it won't have any effect. o Cursed potions are working now (have been broken before). They give a temporare vulnerability, but can be overriden by uncursed potions of the same res.-type. o Protection spells work different than potions. Their effect does add to the player's equipment. The amount of protection granted depends on the caster's skill level and path attunes (if a related spellpath exists). The maximum a player can get is currently 60% (at wisdom lvl 107 & path_attuned). o When the player's state of resistance changes, a new kind of message shows up: The percentage of the new resistance is displayed: e.g. "You resistance to fire rises to 67%". o When a player got hit by dam<1 it used to be zero. To make the calculations more accurate, for 0<dam<1 I "simulate" a floating point value-effect now. Example: If the correct damage value would be 0.4, there is 40% chance for dam=1, else dam=0. For 0.7, ther'd be 70% chance for dam=1... etc. Without that feature, there would most of the times be no difference between resistance 95 and 100. | |||
Show difference between Revision 1.24 and 1.25 | |||
Revision 1.24 | cvs | 2000/12/03 18:40:05 | +65 -57 |
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.23 and 1.24 | |||
Revision 1.23 | avogl | 2000/11/14 16:50:33 | +7 -2 |
New savebed-respawn feature: After death players wake up on the last-applied bed of reality (instead of scorn center). Default for starting players (and old player-files) is scorn center, until they apply their first savebed. --AndreasV | |||
Show difference between Revision 1.22 and 1.23 | |||
Revision 1.22 | jec | 2000/11/06 17:06:47 | +53 -43 |
* stop_item() / attack fix patch 2000-11-06 | |||
Show difference between Revision 1.21 and 1.22 | |||
Revision 1.21 | jec | 2000/10/30 16:09:59 | +35 -1 |
include/sproto.h: Removed prototype of obsolete make_gravestone() function. server/apply.c: Put back gravestone_text() function that was removed accidently a while ago, needed by NOT_PERMADEATH. server/player.c: Don't use the dead player as the originator of object movements. Fixed string handling for NOT_PERMADEATH. | |||
Show difference between Revision 1.20 and 1.21 | |||
Revision 1.20 | peterm | 2000/10/16 14:19:31 | +55 -1 |
Major race/class change by PeterM: BEGIN: ***************** apply.c: new function, apply changes to player. If the change is a CLASS, player receives certain attributes from the class. login.c: make sure people using the old race/class archetypes in their player files can still use them. player.c: 1) give_initial_items modified for greater flexibility: you can pass in a treasurelist. 2) Also, initial forces are applied to the player. 3) Comment added on the stat roll function. 4) Word of recall into the new class-choice map (unfortunately hard-wired.) for newly-rolled players. 5) gen_sp and gen_hp and gen_grace now allowed to go negative to slow down player regen. skill_util.c 1) Don't give out basic skills anymore. This interferes with the class code. spell_util.c 1) Praying failures moderated in frequency. 2) Summoned creatures enhanced in wc, speed, depending on casting level. 3) Word of recall allowed to work in no-magic areas if a flag is set. time.c 1) Move player changer function added. 2) Marker object expiration added. END race/class stuff 10/16/2000 *************************** | |||
Show difference between Revision 1.19 and 1.20 | |||
Revision 1.19 | peterm | 2000/10/12 12:17:04 | +3 -1 |
Fixes for RECYCLE_TMP_MAPS + random maps crashing interaction. --PeterM | |||
Show difference between Revision 1.18 and 1.19 | |||
Revision 1.18 | peterm | 2000/06/20 02:33:38 | +2 -2 |
random_maps/treasure.c server/apply.c: made containers able to have more than one treasure in them, made a fix to treasure.c, which would change the options given to it in an unintended way. --PeterM 6/20/2000 | |||
Show difference between Revision 1.17 and 1.18 | |||
Revision 1.17 | jec | 2000/06/18 15:09:10 | +17 -8 |
server/apply.c: apply_treasure(): Bugfix: We need to trigger runes as they are found in the treasure chest, because move_rune() will no longer trigger them for us. | |||
Show difference between Revision 1.16 and 1.17 | |||
Revision 1.16 | jec | 2000/06/13 15:55:50 | +3 -1 |
server/apply.c: apply_treasure(): Bugfix: Set FLAG_NO_APPLY before moving object to the top. | |||
Show difference between Revision 1.15 and 1.16 | |||
Revision 1.15 | jec | 2000/06/09 07:01:46 | +30 -18 |
common/loader.l: Fix handling of objects with no animation. Fixes server crash if object's archetype has an animation, but object doesn't. common/loader.l: get_ob_diff(): Bugfix: Issue a "is_animated 0" line if the object has an animation, but doesn't have FLAG_ANIMATE. server/apply.c: manual_apply() and monster_apply_special(): Don't check for FLAG_UNPAID if object is applied. This should make the code more robust if an unpaid item get's applied accidently. server/apply.c: apply_special(): New optional flags AP_NO_MERGE and AP_IGNORE_CURSE. server/monster.c: find_mon_throw_ob(); server/skills.c: find_throw_ob(): Bugfix: Use AP_NO_MERGE flag to prevent unapplied object be merged with other objects. server/spell_effect.c: animate_weapon: Bugfixes: Correctly unapply weapon. Don't set FLAG_APPLIED directly on weapon in golem, but use apply_special(). Don't call esrv_send_item() when caster is not a player (fixes server crash if monster casts this spell). | |||
Show difference between Revision 1.14 and 1.15 | |||
Revision 1.14 | jec | 2000/05/29 11:31:26 | +11 -2 |
lib/checkarch.pl: Check for archetypes with type FIRECHEST but no level. - Jan Echternach 5/29/2000 server/apply.c: move_apply(): Added handling of THROWN_OBJ, CANCELLATION and BALL_LIGHTNING. server/spell_effect.c: cancellation(): Traverse inventory of objects with type THROWN_OBJ. - Jan Echternach 5/29/2000 server/player.c: fire_bow() and server_skills.c: do_throw(): Bugfix: Don't use op->count of freed objects. Use was_destroyed() to check for freed objects instead of QUERY_FLAG (FLAG_FREED). - Jan Echternach 5/29/2000 server/spell_util.c: fire_a_ball(): Bugfixes: Use op->other_arch as the archetype to fire, not FBULLET. (-> Firechests now cast fire balls again, not snowballs.) Set level of fired archetype. Check if object was destroyed after insert_ob_in_map(). - Jan Echternach 5/29/2000 server/time.c: move_firewall() and move_firechest(): Do nothing if object has no map. Fixes server crashes if a dm creates such a thing in the inventory. - Jan Echternach 5/29/2000 | |||
Show difference between Revision 1.13 and 1.14 | |||
Revision 1.13 | jec | 2000/05/26 07:36:48 | +12 -1 |
* server/attack.c: hit_map(), hit_player(); server/spell_effect.c: move_cone(); server/rune.c: spring_trap(); server/spell_util.c: move_missile(): Bugfix: Added missing was_destroyed() calls. * server/rune.c: spring_trap(): Bugfix: Call trap_show() before the rune has a chance to be destroyed. * server/attack.c: hit_map(), hit_player(): Check for freed objects right at the beginning of the function. Removed check that hitter has a name from hit_player(). * server/spell_util.c: move_cone(): Bugfix: Remove cone objects in inventories from active list, this fixes the cone without map problem when a flower was hit with ice and put into an icecube. * server/spell_util.c: move_missile(): Bugfix: Don't call hit_map() while missile is removed from the map. * server/apply.c: manual_apply(): Handle MMISSILE. | |||
Show difference between Revision 1.12 and 1.13 | |||
Revision 1.12 | jec | 2000/05/26 04:50:48 | +802 -801 |
* apply() cleanup patch 26/5/2000 | |||
Show difference between Revision 1.11 and 1.12 | |||
Revision 1.11 | cvs | 2000/04/22 02:16:40 | +3 -3 |
Key usage change: Add new command 'usekeys' that specify how keys are searched for. The three options are inventory, keyrings, and containers. These options apply to both standard keys and special keys. If the player has a key for the door but it is in a container that will not be used, print a friendly message of the key name and container name. Files affected: help/usekeys: Added describing options lib/Makefile.in: Addition of help/usekeys above. include/player.h: Add new enumeration and entry into player structure include/sproto.h: New function prototype server/apply.c: change of Find_Key to new function with slightly different options server/c_misc.c: add function to support 'usekeys command. server/commands.c: addition of usekeys command server/player.c: rewrite & rename of find_key command, as well as changes to move_player_attack Mark Wedel 4/21/2000 | |||
Show difference between Revision 1.10 and 1.11 | |||
Revision 1.10 | cvs | 2000/04/12 01:38:04 | +14 -3 |
server/apply.c, server/monster.c: Fix in apply.c for encounter maps so that proper message is generated, and differentiate behaviour if it is a floor vs not a floor. Also, change to both files in that apply_below stops at the floor object. Patch by Jan Echternach, applied & checked in by Mark Wedel, 4/11/2000 | |||
Show difference between Revision 1.9 and 1.10 | |||
Revision 1.9 | cvs | 2000/04/12 01:28:09 | +11 -14 |
server/apply.c, doc/crossfire.doc: Fix to prevent server crashes when monster applies poison object. doc file is updated to include accurate information on values in poison object. Patch by Jan Echternach, applied & checked in by Mark Wedel, 4/11/2000 | |||
Show difference between Revision 1.8 and 1.9 | |||
Revision 1.8 | cvs | 2000/04/04 23:38:50 | +23 -24 |
server/apply.c, improve_armour(): Maximum armour value reduced to 90. Items can now always be improved up to this value. For armour x you need level x, not level x + 1 as before. esrv_send_item() and fix_player() also called if only magic value was improved. Patch by Jan Echternach, applied & checked in by Mark Wedel, 4/4/2000 | |||
Show difference between Revision 1.7 and 1.8 | |||
Revision 1.7 | damn | 1999/09/17 13:39:56 | +33 -13 |
- split multiple lighters | |||
Show difference between Revision 1.6 and 1.7 | |||
Revision 1.6 | damn | 1999/08/18 15:43:54 | +24 -37 |
Use player.c's FindKey to find keys for containers --DAMN | |||
Show difference between Revision 1.5 and 1.6 | |||
Revision 1.5 | cvs | 1999/08/06 16:04:58 | +2 -2 |
Patch from DAMN for a typo. | |||
Show difference between Revision 1.4 and 1.5 | |||
Revision 1.4 | cvs | 1999/07/13 01:03:04 | +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.3 and 1.4 | |||
Revision 1.3 | cvs | 1999/07/10 18:37:45 | +15 -4 |
In apply_lighter, do more accurate check when seeing if the attempted object was actually destroyed. Also, cache the item name so that if it is destroyed, we have a proper name to print out. - msw | |||
Show difference between Revision 1.2 and 1.3 | |||
Revision 1.2 | cvs | 1999/06/05 01:28:06 | +28 -2 |
Improve auto_apply functions so that it will create treasures (random_* items) inside other objects. There is still a limit in that it will only look for these objects inside other top level objects - a random potion inside a chest inside a monster will not be processed. But that should be a rare case, and nesting containers very deep has never been well supported in the code. The code affects is in the apply.c file. | |||
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 |