Protocol: | pserver | User: | anonymous |
Machine: | crossfire.cvs.sourceforge.net | CVSROOT: | /cvsroot/crossfire |
Filename: player.c | |||
Revision 1.205 | qal21 | 2006/09/10 09:55:05 | +58 -111 |
Comment cleanup. No code changes. | |||
Show difference between Revision 1.204 and 1.205 | |||
Revision 1.204 | qal21 | 2006/09/09 19:04:35 | +3 -9 |
Use is_in_shop() to check if it's in a a shop. | |||
Show difference between Revision 1.203 and 1.204 | |||
Revision 1.203 | mwedel | 2006/09/04 02:21:05 | +3 -3 |
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.202 and 1.203 | |||
Revision 1.202 | qal21 | 2006/08/28 02:03:29 | +2 -3 |
Fix logic error in fire_bow and avoid unnecessary messages. Fixes bug #1547699. | |||
Show difference between Revision 1.201 and 1.202 | |||
Revision 1.201 | qal21 | 2006/08/09 15:54:44 | +2 -2 |
Setting default listen level to 10. | |||
Show difference between Revision 1.200 and 1.201 | |||
Revision 1.200 | ryo_saeba | 2006/08/05 03:56:35 | +29 -4 |
Patch #1389432 (Per-race HallOfSelection) courtesy Lalo Martins | |||
Show difference between Revision 1.199 and 1.200 | |||
Revision 1.199 | 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.198 and 1.199 | |||
Revision 1.198 | akirschbaum | 2006/05/26 18:13:42 | +3 -2 |
Monsters now cannot anymore see through earthwalls/monsters. This restores the behavior to what it was before the new movement code. For players this basically means that monsters will not anymore cast spells though earthwalls or other monsters. | |||
Show difference between Revision 1.197 and 1.198 | |||
Revision 1.197 | ryo_saeba | 2006/05/05 04:26:35 | +13 -10 |
First part of patch #1453869 courtesy Stefan Huehner (shuehner) | |||
Show difference between Revision 1.196 and 1.197 | |||
Revision 1.196 | tchize | 2006/04/06 16:18:35 | +2 -2 |
finished common/arch.c unit test, fixed a few bugs, moved function around and renamed other | |||
Show difference between Revision 1.195 and 1.196 | |||
Revision 1.195 | ryo_saeba | 2006/03/18 09:05:37 | +107 -98 |
Massive cleaning of code. Shouldn't be any functional change. | |||
Show difference between Revision 1.194 and 1.195 | |||
Revision 1.194 | ryo_saeba | 2006/03/14 11:12:28 | +2 -1 |
Fix memory leak and uninitialized variable | |||
Show difference between Revision 1.193 and 1.194 | |||
Revision 1.193 | akirschbaum | 2006/02/10 17:59:27 | +4 -4 |
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.192 and 1.193 | |||
Revision 1.192 | cavesomething | 2006/02/08 19:51:55 | +4 -2 |
lock players' starting items to make it less likely they will accidentally drop them | |||
Show difference between Revision 1.191 and 1.192 | |||
Revision 1.191 | mwedel | 2006/02/07 01:54:46 | +42 -13 |
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.190 and 1.191 | |||
Revision 1.190 | qal21 | 2006/01/08 17:57:19 | +8 -6 |
Fixed misc 'warning: will never be executed' stuff | |||
Show difference between Revision 1.189 and 1.190 | |||
Revision 1.189 | akirschbaum | 2006/01/01 07:03:07 | +18 -1 |
Properly unready forgotten spells. Prevents crashing the server if casting a forgotten spell. | |||
Show difference between Revision 1.188 and 1.189 | |||
Revision 1.188 | akirschbaum | 2005/12/10 08:27:10 | +2 -2 |
common/object.c, server/{pets.c,player.c,spell_attack.c,time.c}, socket/request.c: Properly check for P_OUT_OF_MAP after calling get_map_flags(). | |||
Show difference between Revision 1.187 and 1.188 | |||
Revision 1.187 | akirschbaum | 2005/12/07 12:25:55 | +1 -13 |
Apply modified patch #1293774 (Kick banned hosts at once) by Thomas Equeter: disconnect new connection for banned host right after connecting. Also add support for user name in ban files. | |||
Show difference between Revision 1.186 and 1.187 | |||
Revision 1.186 | akirschbaum | 2005/12/05 17:34:04 | +4 -4 |
Apply patch #1371956 (code cleanup patch) by Stefan Huehner: fix old-style function declarations and prototypes to proper Ansi C syntax. This patch allows the compiler to check function arguments and also removes some warnings when compiling with -Wstrict-prototypes. | |||
Show difference between Revision 1.185 and 1.186 | |||
Revision 1.185 | mwedel | 2005/11/16 02:16:09 | +27 -17 |
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.184 and 1.185 | |||
Revision 1.184 | ryo_saeba | 2005/11/12 07:49:07 | +6 -1 |
Patch 1352485 (newpickup rings/amulets) courtesy anonymous | |||
Show difference between Revision 1.183 and 1.184 | |||
Revision 1.183 | akirschbaum | 2005/11/01 07:42:15 | +4 -1 |
Improve newpickup command: add new flag PU_NOT_CURSED to ignore cursed items. | |||
Show difference between Revision 1.182 and 1.183 | |||
Revision 1.182 | akirschbaum | 2005/10/28 14:08:53 | +4 -4 |
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.181 and 1.182 | |||
Revision 1.181 | akirschbaum | 2005/10/28 13:19:53 | +5 -1 |
Fixes my previous commit. Should now properly allocate/deallocate the faces_sent array. | |||
Show difference between Revision 1.180 and 1.181 | |||
Revision 1.180 | gros | 2005/10/18 11:54:31 | +16 -62 |
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.179 and 1.180 | |||
Revision 1.179 | akirschbaum | 2005/10/07 14:38:49 | +2 -2 |
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.178 and 1.179 | |||
Revision 1.178 | ryo_saeba | 2005/10/01 12:46:05 | +2 -2 |
Patches #1307880 and #1306987 courtesy quisar | |||
Show difference between Revision 1.177 and 1.178 | |||
Revision 1.177 | cavesomething | 2005/09/24 21:15:45 | +10 -6 |
make prior party obsoletion patch not completely broken | |||
Show difference between Revision 1.176 and 1.177 | |||
Revision 1.176 | ryo_saeba | 2005/09/24 04:28:05 | +7 -7 |
Patch 1194964 (party obsoletion) by cavesomething | |||
Show difference between Revision 1.175 and 1.176 | |||
Revision 1.175 | akirschbaum | 2005/09/17 08:24:48 | +5 -2 |
Update client inventory view for players dieing in a shop with unpaid items in inventory. | |||
Show difference between Revision 1.174 and 1.175 | |||
Revision 1.174 | akirschbaum | 2005/09/04 11:58:12 | +2 -2 |
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.173 and 1.174 | |||
Revision 1.173 | mwedel | 2005/08/28 22:56:32 | +12 -2 |
Fix player weapon speed/speed. There are a few bugs this fixes: 1) when player hit something, a has_hit field was set to true, to denote they hit something and to use weapon speed. However, this was only cleared when player issued a command. Thus, if you are running and hit something, you'd continue at weapon_speed pace until you needed to change direction. 2) Because has_hit was used, this basically put in a 1 tick lag - you'd hit something, but not until objects were processed and speed given would you get your extra speed. Likewise, after you killed something, you'd get your burst of speed for the next tick also. -- server/main.c: Clear has_hit, change function to only do bounds checking, not actually do weapon_speed adjustments. server/player.c: Give player speed boost when they hit something. MSW 2005-08-28 | |||
Show difference between Revision 1.172 and 1.173 | |||
Revision 1.172 | ryo_saeba | 2005/08/12 08:46:34 | +5 -5 |
Fields changed from char* to const char*, cleanup. | |||
Show difference between Revision 1.171 and 1.172 | |||
Revision 1.171 | ryo_saeba | 2005/08/12 03:18:59 | +8 -8 |
Use const char* instead of char* when possible | |||
Show difference between Revision 1.170 and 1.171 | |||
Revision 1.170 | mwedel | 2005/08/09 23:57:47 | +5 -4 |
server/player.c: Set map for arrow as returned by get_map_flags - otherwise when firing at edge of tiled maps, arrows could end up in wrong place. MSW 2005-08-09 | |||
Show difference between Revision 1.169 and 1.170 | |||
Revision 1.169 | mwedel | 2005/08/08 01:27:30 | +8 -6 |
include/config.h: Make DEBUG default - appears last commit changed this as unrelated to actual changes in place. include/sproto.h: Rebuild server/player.c: fire_bow() - add checks for wall/out of map. fire_bow() wasn't using right coordinates on check, which caused problems in threewide mode at edge of maps. MSW 2005-08-07 | |||
Show difference between Revision 1.168 and 1.169 | |||
Revision 1.168 | ryo_saeba | 2005/07/30 10:03:00 | +12 -2 |
Crash when news/rules >4096 bytes. | |||
Show difference between Revision 1.167 and 1.168 | |||
Revision 1.167 | akirschbaum | 2005/07/16 16:10:39 | +2 -2 |
Fix spelling errors in string constants. | |||
Show difference between Revision 1.166 and 1.167 | |||
Revision 1.166 | akirschbaum | 2005/07/16 08:25:17 | +4 -5 |
server/player.c: Ignore hidden DM in stand_near_hostile(). Formerly it always returned false if a hidden DM was present. | |||
Show difference between Revision 1.165 and 1.166 | |||
Revision 1.165 | akirschbaum | 2005/07/10 08:54:06 | +5 -3 |
server/{login.c, player.c}: Fix buffer overflow with pl->title. Based on patch by Scott Kullberg. crossedit/{Edit.c, Cnv/CnvPrompt.c}, server/{ban.c, hiscore.c, login.c, player.c, shop.c, win32.c}: Properly terminate destination string of strncpy with '\0'. | |||
Show difference between Revision 1.164 and 1.165 | |||
Revision 1.164 | tchize | 2005/05/29 10:37:54 | +69 -5 |
MOTD now splitted in 3 files: rules, news and motd. They are sent on connection to client in this exact order. | |||
Show difference between Revision 1.163 and 1.164 | |||
Revision 1.163 | tchize | 2005/05/21 12:35:31 | +2 -2 |
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.162 and 1.163 | |||
Revision 1.162 | akirschbaum | 2005/05/21 10:02:28 | +2 -1 |
server/player.c: Generate proper plural name for player's gravestones. | |||
Show difference between Revision 1.161 and 1.162 | |||
Revision 1.161 | tchize | 2005/05/06 16:10:25 | +13 -8 |
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.160 and 1.161 | |||
Revision 1.160 | majorwoo | 2005/03/21 21:15:06 | +8 -2 |
Allow a player to hide if standing near a hidden dm. #1119594 | |||
Show difference between Revision 1.159 and 1.160 | |||
Revision 1.159 | majorwoo | 2005/03/20 16:26:27 | +16 -1 |
This is patch #1166750 to allow a battleground tile to send a player who dies to maxhp,maxsp or hp,mp based on a matching force=slaying | |||
Show difference between Revision 1.158 and 1.159 | |||
Revision 1.158 | ryo_saeba | 2005/03/13 09:13:12 | +25 -14 |
Apply patches #1119366 and #1161816 | |||
Show difference between Revision 1.157 and 1.158 | |||
Revision 1.157 | akirschbaum | 2005/02/20 14:43:16 | +4 -2 |
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.156 and 1.157 | |||
Revision 1.156 | mwedel | 2005/01/24 01:29:26 | +21 -18 |
common/object.c: Change CAN_MERGE() from an inline function, since it calls itself and inline functions are not supposed to do that. Update type check in insert_ob_in_map() to check against defined type (EXIT) instead of hardcoded integer value (66). crossedit/xutil.c: Update to just include Defines.h, which then includes all the other necessary files, including global.h. include/global.h: Add #ifdef checks for the UINT*_MAX types, as some systems already define these values, which results in a redefinition error. Also fix up // style comment. include/shstr.h: Include proper cast in TOPBIT definition. server/main.c: Don't display 'xyz left the game' messages if the player is only at the get name or get password prompt. Prevents possible spoofing of that message. server/player.c: Clean up formatting of check_pick() function. If player is using newpickup to pick up booze, also pick up poison unless they know it is cursed. socket/request.c: AskSmooth() - change buffer type to uint8 so that it matches what the SockList structure wants. utils/scores.pl.in: Use skill_praying to find players god, and not the deprecated experience_wis object. MSW 2005-01-23 | |||
Show difference between Revision 1.155 and 1.156 | |||
Revision 1.155 | mwedel | 2005/01/12 02:04:01 | +12 -10 |
aclocal.m4, configure: Add check for python 2.4. common/re-cmp.c: Fix improper comparison *(str+1) instead of str+1 server/login.c: don't allow null names. server/main.c: Disable logging of removed objects - filling up log files on archmage of all the errors. server/player.c: Fix improper initialization of attacktype in for loop. Give players max grace, sp when they die - also, if they are near starvation, give them a bunch of food. server/spell_effect.c: Put cap on duration of godly retribution - it can otherwise last so long that if a player is killed by it at their savebed location, spell could still go on after players temporary immunity ends. Retribution as increases in damage, so no need to really increase damage and duration to really high amounts. server/spell_util.c: In fire_arch_from_position(), and check that player isn't casting spell on top of wall - fixes for many spells, including ball lightning. server/time.c: Change comparsion on return of get_map_flags() from == P_OUT_OF_MAP to & P_OUT_OF_MAP - keeps syntax consistent. MSW 2005-01-11 | |||
Show difference between Revision 1.154 and 1.155 | |||
Revision 1.154 | mwedel | 2004/12/29 02:45:08 | +40 -8 |
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.153 and 1.154 | |||
Revision 1.153 | akirschbaum | 2004/09/19 12:13:54 | +2 -2 |
server/player.c: Allow to 'reply' to players that logged out but did not yet drop the connection. Now reply works like other communication commands. | |||
Show difference between Revision 1.152 and 1.153 | |||
Revision 1.152 | akirschbaum | 2004/08/30 12:21:37 | +4 -1 |
server/player.c: allow to 'talk' to players with ambiguous names: use a perfect match even if other partial matches exist. | |||
Show difference between Revision 1.151 and 1.152 | |||
Revision 1.151 | akirschbaum | 2004/06/13 12:30:38 | +2 -2 |
common/object.c include/define.h include/player.h include/sproto.h server/attack.c server/c_object.c server/player.c server/shop.c socket/item.c socket/loop.c socket/request.c: Remove explicit calls to esrv_update_item(UPD_WEIGHT, pl, pl) for player objects. Instead send the new weight whenever it changes. | |||
Show difference between Revision 1.150 and 1.151 | |||
Revision 1.150 | mwedel | 2004/04/16 01:23:44 | +3 -3 |
common/map.c: Change blocked_link() to take a map parameter. Also, change code in blocked_link() to assume that the caller has set up appropriate map and coordinates related to tiling (in all functions that currently call blocked_link, this is the case) include/libproto.h: Rebuilt. server/move.c, server/player.c: update call to blocked_link to include the map. MSW 2004-04-15 | |||
Show difference between Revision 1.149 and 1.150 | |||
Revision 1.149 | mwedel | 2004/04/07 01:46:43 | +12 -1 |
server/player.c: In flee_player(), make sure the enemy to the player is on an actual map - fixes crashes. MSW 2004-04-06 | |||
Show difference between Revision 1.148 and 1.149 | |||
Revision 1.148 | mwedel | 2004/03/24 02:15:17 | +42 -29 |
server/attack.c: Add scare_creature() function, which sets FLAG_SCARED and also sets up appropriate enemy. Clean up some formatting in other functions, and fix friendly fire - move it out of the loop for all attacktypes (can be after we have figured out max damage). Also, has a bug where if an attach wasn't doing any damage, friendly fire could actually make it do damage (eg, fear spell). server/player.c: Fix up flee_player() to be map tile aware. Also, add call to flee_player() in handle_newcs_player() so player will run away. MSW 2004-03-24 | |||
Show difference between Revision 1.147 and 1.148 | |||
Revision 1.147 | temitchell | 2004/02/28 20:46:28 | +4 -4 |
- small change in message to make the horn code more generic | |||
Show difference between Revision 1.146 and 1.147 | |||
Revision 1.146 | ryo_saeba | 2004/02/27 17:00:28 | +3 -2 |
Some warnings cleaning. | |||
Show difference between Revision 1.145 and 1.146 | |||
Revision 1.145 | mwedel | 2004/02/11 02:09:29 | +3 -2 |
common/Makefile.am: Clean up proto - lex seems to toss some new symbols in now days. common/map.c, common/object.c, server/player.c, socket/item.c, socket/request.c: change parameters of get_map_from_coord from int to sint16, so the op->x,op->y can get passed directly in. Update callers of this function. lib/archetypes: Add damned 1 to the shop floors. server/pets.c: Fix problem with big (multisquare) pets following the owner across tiled map boundaries. socket/item.c: Fix problem of players being able to see everything within containers by just looking at them. MSW 2004-02-10 | |||
Show difference between Revision 1.144 and 1.145 | |||
Revision 1.144 | mwedel | 2004/02/07 22:24:49 | +5 -2 |
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.143 and 1.144 | |||
Revision 1.143 | ryo_saeba | 2004/01/18 04:36:10 | +4 -1 |
Added map-building code. | |||
Show difference between Revision 1.142 and 1.143 | |||
Revision 1.142 | mwedel | 2004/01/16 01:52:51 | +4 -4 |
Fix a bunch of crashes observed on metalforge: server/player.c: do_hidden_move(): Move call to find skill so that it is always called. server/skills.c: write_scroll(): Fix freeing of spell object in scroll - newscroll->inv isn't valid after calling remove_ob, so need to copy object to temporary pointer first. server/spell_effect.c: cast_detection(): Pass in skill to use. If no skill in use, use the caster object - fixes pointer derefence as op->chosen_skill wasn't always set. server/spell_util.c: modify caster_level() to always return at least 1. Fixes pointer potential divide by zero problems - also guarantees that players will be able to cast first level spells even if repelled to that spellpath. ok_to_put_more() - Fix to use correct map pointer variable. find_target_for_friendly_spell() - make it so it handles tiled maps OK. MSW 2003-01-15 | |||
Show difference between Revision 1.141 and 1.142 | |||
Revision 1.141 | mwedel | 2003/12/28 00:06:00 | +16 -6 |
common/living.c: fix fix_player() so that character gets benefits/penalties for sp/hp/grace/etc regen bonuses as related to the god they worship. server/player.c: dragon_ability_gain(): Modify so that character now gets attacktype of new ability that they gain. Also, add code so that the characters face/animation can change (getting set to values the bonus ability). MSW 2003-12-27 | |||
Show difference between Revision 1.140 and 1.141 | |||
Revision 1.140 | ryo_saeba | 2003/11/07 13:54:49 | +29 -29 |
Fixed newline issue with previous commit. | |||
Show difference between Revision 1.139 and 1.140 | |||
Revision 1.139 | ryo_saeba | 2003/11/07 13:01:30 | +29 -1 |
Improved 'tell' command. Fix Win32-Python issues. Fix Win32 compilation issue. | |||
Show difference between Revision 1.138 and 1.139 | |||
Revision 1.138 | mwedel | 2003/11/01 22:17:00 | +26 -19 |
server/player.c: Fix crash in stand_near_hostile when it is called on tiled maps with player near edge. MSW 2003-11-01 | |||
Show difference between Revision 1.137 and 1.138 | |||
Revision 1.137 | ryo_saeba | 2003/10/17 12:24:53 | +2 -2 |
Name of spell gained by a dragon is in item->name, not item->inv->name (item->inv is NULL) | |||
Show difference between Revision 1.136 and 1.137 | |||
Revision 1.136 | mwedel | 2003/10/14 01:54:48 | +16 -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.135 and 1.136 | |||
Revision 1.135 | mwedel | 2003/10/08 00:43:22 | +2 -2 |
Fix typo that somehow slipped through my checks. MSW 2003-10-07 | |||
Show difference between Revision 1.134 and 1.135 | |||
Revision 1.134 | mwedel | 2003/10/07 02:02:02 | +41 -33 |
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.133 and 1.134 | |||
Revision 1.133 | mwedel | 2003/09/14 02:07:14 | +8 -5 |
Don't allow _ or - for the first character of players names. Makes handling of player files/directories a bit more of a pain (plus, may not be legal on all potential OS's?) MSW 2003-09-13 | |||
Show difference between Revision 1.132 and 1.133 | |||
Revision 1.132 | mwedel | 2003/09/13 00:02:12 | +284 -260 |
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.131 and 1.132 | |||
Revision 1.131 | temitchell | 2003/09/04 01:25:32 | +2 -2 |
- 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.130 and 1.131 | |||
Revision 1.130 | temitchell | 2003/07/23 23:21:14 | +2 -3 |
- added toggle_shout DM command to disable/enable player shouting | |||
Show difference between Revision 1.129 and 1.130 | |||
Revision 1.129 | gros | 2003/06/26 06:27:43 | +10 -9 |
Re-implemented the event hooks in objects as a dynamically linked list, instead of a static table. | |||
Show difference between Revision 1.128 and 1.129 | |||
Revision 1.128 | mwedel | 2003/04/15 00:57:59 | +26 -18 |
server/player.c: Have players start at max hp/grace/sp. MSW 2003-04-14 | |||
Show difference between Revision 1.127 and 1.128 | |||
Revision 1.127 | mwedel | 2003/03/24 00:58:33 | +1 -2 |
common/glue.c, include/funcpoint.h: remove draw_func() pointer - no longer needed, so code that sets up pointer removed. lib/*: rebuilt - facings added to old player animation information. ruined_temple archetype added. server/init.c: remove set_draw() function server/player.c: remove call to draw() - socket code takes care of this. socket/info.c: remove draw() - instead, draw_client_map() can be used, as that is most the only thing draw() did anyways. socket/loop.c: Update draw() calls to draw_client_map() socket/request.c: Remove special handling for darkness==4 cases (first space that is in full darkness) - this is extra complications and causes display problems. Update draw_client_map() to include the little bit of logic that draw() had that this function did not have. MSW 2003-03-24 | |||
Show difference between Revision 1.126 and 1.127 | |||
Revision 1.126 | mwedel | 2003/03/19 02:04:52 | +12 -15 |
common/anim.c: Pass direction to animate_object() - needed for player animations as player's facing may not match direction. crossedit/Attr.c, server/main.c, server/time.c: Update calls to animate_object() include/libproto.h: rebuilt include/newserver.h, plugin_animator/animator_box.c, socket/init.c, socket/request.c: Remove newanim field from socket structure - not needed - how to animate is determined by object, not by socket. server/move.c: Add check to P_OUT_OF_MAP in teleport function. server/player.c: change move_player to call animate_object, so it gets full power of functionality it supports instead of 4 way hardcode animation information. server/spell_effect.c: When altars are consecrated, don't look to arch name for first portion of name - always call them Altar of %s - fixes problem where altar is special god altar that has god's name in archetype, resulting in altar of .. of ... MSW 2003-03-18 | |||
Show difference between Revision 1.125 and 1.126 | |||
Revision 1.125 | mwedel | 2003/03/07 23:35:32 | +2 -3 |
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.124 and 1.125 | |||
Revision 1.124 | mwedel | 2003/02/19 00:58:56 | +2 -2 |
Fix error in threewide shot - typo had direction -22 instead of -2. MSW 2003-02-18 | |||
Show difference between Revision 1.123 and 1.124 | |||
Revision 1.123 | mwedel | 2003/02/19 00:52:07 | +84 -82 |
Fix bug where it wasn't making new players level 1, thus not rolling up appropriate hp, sp, and grace for them. MSW 2003-02-18 | |||
Show difference between Revision 1.122 and 1.123 | |||
Revision 1.122 | garbled | 2003/02/13 23:50:37 | +1 -30 |
Lots of updates here: common/item.c: make item_power stop showing up in ring short descriptions. fix some of the items that were double-displaying materialnames, like mithril mithril chainmail. common/loader.l: add tooltype common/utils.c: Unless the object is armour or weapons, pick the first materialname we find. Now, newly generated diamonds will stack. Fix name_to_material to return NULL if it finds nothing, fixes navar_city/museum crash. Change set_materialname to take a materialtype_t argument, allowing functions to manually set the materialname, rather than let the randomizer pick for them. include/define.h: Add TOOL and BUILDFAC for item building. include/object.h: add tooltype for item building. include/materials.h: add M_SPECIAL. Set this in an object, to prevent things like mithril mithril chainmail. This is primarily only needed in artifacts, because they change the base material of the arch. Also useful in things like the demonspawn shield, and on maps. lib/artifacts: sprinkle M_SPECIAL around. server/player.c: remove auto_heal. This never should have been committed, and was never referenced by any code. server/c_object.c: add item building, but add it disabled. Too many bugfixes were tied in with this code to cleanly add them. When enabled, this code will add player item building, similar to create to take place. Requires a host of graphics and arches to be useable. | |||
Show difference between Revision 1.121 and 1.122 | |||
Revision 1.121 | mwedel | 2003/02/10 00:52:13 | +3 -2 |
doc/Developers/objects: Add nodes about shared strings in objects. server/c_misc.c: Remove check for name length - check_name takes care of that for us. server/monster.c: store return value from get_map_flags - seen some crashes traced back to this area, want to see what it returned. Allow objects with no msg to still use scripts that listen. server/player.c: Fix potentional issue of freeing/adding players name when they enter play again - seen some crashes attributed to odd names. MSW 2003-02-08 | |||
Show difference between Revision 1.120 and 1.121 | |||
Revision 1.120 | garbled | 2003/02/07 01:14:18 | +16 -7 |
bestarrow changes: 1) compare resists against the arch of the monster, not the actual monster. 2) stop looking for a target if you hit a blocksview. 3) penalize ROF when using bestarrow. | |||
Show difference between Revision 1.119 and 1.120 | |||
Revision 1.119 | garbled | 2003/02/04 23:32:03 | +174 -25 |
New bow code. bowmode bestarrow. When firing arrows, look at the first target in line, and attempt to pick the best arrow to use against it. | |||
Show difference between Revision 1.118 and 1.119 | |||
Revision 1.118 | mwedel | 2003/02/03 02:27:11 | +45 -56 |
server/player.c: Fix permadeath without resurrection - wasn't deleting player save files as it was supposed to. If permadeath + resurrection was in use, I believe it all worked as expected. | |||
Show difference between Revision 1.117 and 1.118 | |||
Revision 1.117 | garbled | 2003/01/29 18:07:09 | +2 -1 |
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.116 and 1.117 | |||
Revision 1.116 | mwedel | 2003/01/23 01:38:43 | +27 -26 |
More bug fixes: server/player.c: Call fix_player after lifesaving device is used to reset body location values. server/spell_effect.c, server/spell_util.c: Add some more P_OUT_OF_MAP checks. MSW 2003-01-22 | |||
Show difference between Revision 1.115 and 1.116 | |||
Revision 1.115 | mwedel | 2003/01/08 02:39:20 | +164 -181 |
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.114 and 1.115 | |||
Revision 1.114 | mwedel | 2003/01/05 17:50:15 | +4 -4 |
common/item.c: Add 'unidentified' to display of examined items if the item has not been identified. Only display spell regen penalty for armour if there is in fact a penalty. lib/archetypes: rebuilt for updated demon speed, pick up other new archs. lib/animations, lib/bmaps lib/bmaps.paths lib/crossfire.0 lib/crossfire.1 lib/faces: rebuilt server/main.c: Name random maps based on final map component (if available) or map they are spawned from - this gives so clue in 'who' command where the players really are. server/monster.c: Fix code that would cause monsters to ignore golems/ avatars. server/pets.c: Clean up a few warnings, fix bug in pet_move that caused crashes - owner of a pet isn't always a player. server/player.c: Remove on_same_map check - can_detect_monster also performed check, so no need to have extra call. server/spell_effect.c: modify alchemy to properly deal with tiled maps, change behavior for spells that block view - they no longer block alchemy, but spaces that block magic will. MSW 2002-01-05 | |||
Show difference between Revision 1.113 and 1.114 | |||
Revision 1.113 | mwedel | 2002/12/27 02:37:41 | +5 -2 |
common/treasure.c: Fix initialization of treasure structs to use calloc. server/player.c: Fix infinite loop. socket/loop.c: Make sure we put in null terminator for socket data. MSW 2002-12-26 | |||
Show difference between Revision 1.112 and 1.113 | |||
Revision 1.112 | garbled | 2002/12/25 00:45:46 | +158 -74 |
New Arrow and Pet Code: Add bowmode and petmode commands. Allowing the player to change the firing style for bows to one of either threewide, or spreadshot. Allow players to change the operating modes of his pet with petmode. Can be either seek and destroy, defend, or normal historical behavior. Change bows to impart speed to arrows based on damage and other magical plusses. Damage decays over distance, to stop arrows from flying forever. Very fast moving arrows will pierce multiple targets. An arrow moving at a speed greater than 10.0 will go straight through a target, losing 1.0 of speed in the process. Change magic missile to use spell_find_dir instead of find_dir to stop it from flying in a circle and hitting the caster, and to make it stop flying into walls to hit creatures behind the walls. | |||
Show difference between Revision 1.111 and 1.112 | |||
Revision 1.111 | garbled | 2002/12/13 01:23:00 | +5 -3 |
Per Mark's suggestion, make it so attacktype is only transferred to arrows that have AT_PHYSICAL only. To avoid fire/cold arrows and the like. | |||
Show difference between Revision 1.110 and 1.111 | |||
Revision 1.110 | garbled | 2002/12/12 23:09:49 | +8 -2 |
Fix a typo in the attacktype bow->arrow transfer. Make it so gods can now bless bows like they would any other weapon. Make slaying transfer fom the bow to the arrow, so the god enchantment is not lost. | |||
Show difference between Revision 1.109 and 1.110 | |||
Revision 1.109 | garbled | 2002/12/12 15:52:52 | +4 -1 |
Fix the fact that bows do not impart thier attacktype to arrows fired. | |||
Show difference between Revision 1.108 and 1.109 | |||
Revision 1.108 | mwedel | 2002/12/04 02:12:40 | +38 -30 |
server/player.c: Change move_player_attack() so that we look for monsters to attack even after finding a rollable object - there can be non blocking rollable objects with monsters on top - we want to attack the monster, not roll the object. MSW 2002-12-03 | |||
Show difference between Revision 1.107 and 1.108 | |||
Revision 1.107 | mwedel | 2002/12/03 01:40:18 | +22 -8 |
TODO: Move more items from my mailbox to the TODO list. common/living.c: Init item_power in player to zero in fix_player() - bogus results were getting generated as it just kept getting incremented. common/porting.c: fix remove_directory so it works properly - checking for . and .. entries too late, calling unlink instead of rmdir. include/sproto.h: rebuilt lib/animations, lib/archetypes, lib/bmaps, lib/bmaps.paths, lib/crossfire.0, lib/crossfire.1, lib/faces: Rebuilt - new archs added, catch is_thrown addition to thrown rock/boulder archs. server/c_move.c, server/c_range.c: Add another parameter to do_skill() - part, which is closest part of creature to target object - current only used for the throw code. Update calls to this function to add additional parameter. server/c_object.c: Remove the NDI_UNIQUE from the 'item is too heavy to pick up' so that it won't flood the client with them if players goes onto space with lots of objects. server/main.c: Minor cleanup to fix compiler warning about ambigous if/else. server/monster.c: Pass closest part of monster when having it use a skill so that it doesn't throw rocks into itself. Update calls to do_skill as described above. server/player.c: Cal delete_player() when player quits - this properly cleans up any per player unique maps they have. Also, check for any such maps currently in memory, and delete those so that unique maps don't get 'gifted' to the next character of the same name. Update calls to do_skill as described above. server/shop.c: Combine items of the same name together in the output of the shop listings. Include the number of items, remove special casing of some objects so that query_base_name is used for all item types. server/skill_util.c: Modify do_skill() to take additional param as described above. Also, have do_skill return 1 on success, 0 on failur to use skill, and not return exp - otherwise, monster code has no idea if skill was successfully used, as throw doesn't grant exp, and this caused monsters to move into the object they just threw. Update calls to do_skill as described above. server/skills.c: Clean up skill_throw function to return meaningfull value. Also, pass along extra part of closest monster part to target. Modify do_throw to return value, use closest part of body as origin point for thwon object. server/spell_effect.c: Use isqrt function instead of definining ISQRT that used float version. Cleans up compile warning - most likely not seen before as spell was #ifdef SPELL_ENCUMBERANCE out. server/time.c: Put sanity checking for players speed_left in move_player_mover() - got some reports of infinite negative speed on metalforge, and this is the only place in the code where I could see that happening given the description of the events. utils/arch2xml.py, utils/cfarches.xsl: New script (and template) by Todd Mitchell. Script can convert archs to xml, and the template is usuable with mozilla to look at the output. MSW 2002-12-02 | |||
Show difference between Revision 1.106 and 1.107 | |||
Revision 1.106 | mwedel | 2002/11/29 22:17:41 | +2 -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.105 and 1.106 | |||
Revision 1.105 | garbled | 2002/11/26 02:48:20 | +1 -13 |
Get rid of #ifdef PLUGINS (it is on by default, I didn't take out gros's code) | |||
Show difference between Revision 1.104 and 1.105 | |||
Revision 1.104 | garbled | 2002/11/26 01:44:29 | +1 -17 |
Remove ifdefs for USE_SWAP_STATS and SORT_ROLLED_STATS | |||
Show difference between Revision 1.103 and 1.104 | |||
Revision 1.103 | garbled | 2002/11/12 23:49:04 | +20 -24 |
#define MOTD -> settings.motd #define DM_MAIL -> settings.dm_mail | |||
Show difference between Revision 1.102 and 1.103 | |||
Revision 1.102 | garbled | 2002/11/12 23:24:54 | +1 -7 |
#ifdef SPELLPOINT_LEVEL_DEPEND -> settings.spellpoint_level_depend #ifdef EXPLORE_MODE -> settings.explore_mode While I was here.. make explore mode actually *work*. It didn't even have an entry in the commands array. | |||
Show difference between Revision 1.101 and 1.102 | |||
Revision 1.101 | garbled | 2002/11/12 18:26:13 | +1 -2 |
#ifdef SPELL_ENCUMBRANCE -> settings.spell_encumbrance #ifdef SPELL_FAILURE_EFFECTS -> settings.spell_failure_effects | |||
Show difference between Revision 1.100 and 1.101 | |||
Revision 1.100 | garbled | 2002/11/12 17:20:11 | +2 -4 |
#ifdef SEARCH_ITEMS -> settings.search_items | |||
Show difference between Revision 1.99 and 1.100 | |||
Revision 1.99 | garbled | 2002/11/12 17:09:11 | +7 -10 |
SET_TITLE and RESURRECTION are now settings. | |||
Show difference between Revision 1.98 and 1.99 | |||
Revision 1.98 | garbled | 2002/11/12 16:34:26 | +197 -190 |
convert #ifdef NOT_PERMADETH into settings.not_permadeth. | |||
Show difference between Revision 1.97 and 1.98 | |||
Revision 1.97 | mwedel | 2002/10/03 02:07:43 | +14 -1 |
Bugfixes: Add golem_count element to player structure so we can properly detect when golem is destroyed. This fixes a crash in some places as the code tried to remove this already removed golem. Fix crash when null player maps. include/player.h: Add golem_count element to player structure. server/player.c: Add code in handle_newscs_player() that checks status of golem, clears op->contr->golem is value is bogus server/spell_effect.c, server/spell_util.c: Initialize golem_count value when golem is created. socket/request.c: Check for null map value. MSW 2002-10-04 | |||
Show difference between Revision 1.96 and 1.97 | |||
Revision 1.96 | mwedel | 2002/09/28 02:19:40 | +10 -2 |
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.95 and 1.96 | |||
Revision 1.95 | mwedel | 2002/09/23 01:27:54 | +6 -1 |
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.94 and 1.95 | |||
Revision 1.94 | mwedel | 2002/09/07 17:08:07 | +2 -2 |
Automake patch - all files. The changes for the source files is using confdir instead of datadir. Patch by Jacek Konieczny (jajcus@bnet.pl), applied by Mark Wedel, 2002-09-07. | |||
Show difference between Revision 1.93 and 1.94 | |||
Revision 1.93 | mwedel | 2002/09/02 02:04:15 | +2 -1 |
Fix infinite number of uses on wands - missing return. MSW 2002-09-01 | |||
Show difference between Revision 1.92 and 1.93 | |||
Revision 1.92 | mwedel | 2002/09/01 01:32:31 | +1 -3 |
This change mostly deals with improving behaviour of pet monstes. Most of the code is from K. Reinert - however, I did some code cleanup/ fixes related to pet monsters, so it is difficult to note where each piece of code came from. One thing this does fix is handling of multipart pets - these now work properly. common/map.c: Update comment for get_rangevector() - no code change. common/object.c: Add get_search_arr() which is used in pet monster code. This returns a semi random scrambling of the freearr array. doc/Developers/protocol: Update documentation about map1a protocol command. include/libproto.h, include/sproto.h: rebuilt. server/attack.c: Have drain attacks return 1 damage so that it is clear that you are actually hitting your opponent. Otherwise, you would get messages that 'you missed xyz', even though you are draining it. This extra point of damage shouldn't change balance in any significant way. server/monster.c: Update hnadling of enemies for pet monsters. It should more intelligently choose the monsters and not switch/clear the enemy field for no reason anymore. Change find_nearest_living_creature to use the get_search_arr() to more randomly choose direction of target - before, there was a proclivity to always look in the north direction. Modify can_hit() to look for closes part of enemy - otherwise, monsters may not attack opponents even if they were right next to them because they couldn't get to the enemies head. Remove move_object from this function - merged with move_ob in move.c server/move.c: Fix move_ob to use 'cleaner' code of move_object, but also have specific features that move_ob had (player handling). Before move_ob didn't handle multipart objects correctly, and the two functions were largely the same. Now move_object() just calls move_ob - the only difference in the functions is that move_ob() takes 3 parameters instead of 2 of move_object() (added parameter is originator). I think this should now mean multipart player objects may now work. server/pets.c: get_pet_enemy enhanced to be much smarter about selecting/finding things for the pet to attack. server/player.c: Remove commented out line of init_beforeplay MSW 2002-08-31 | |||
Show difference between Revision 1.91 and 1.92 | |||
Revision 1.91 | mwedel | 2002/08/26 02:14:11 | +2 -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.90 and 1.91 | |||
Revision 1.90 | jbontje | 2002/08/22 07:37:55 | +13 -1 |
Pickups: added pickups for spellbooks,skillscrols,normal book/scroll. Patch created by Aprogas mids 2002/08/22 | |||
Show difference between Revision 1.89 and 1.90 | |||
Revision 1.89 | mwedel | 2002/08/02 00:09:39 | +3 -3 |
include/global.h: add FREE_AND_CLEAR_STR macro, relocate DELETE_STRING by the other macros. server/c_misc.c: Fix string printout in applymode function. server/disease.c: Update name_pl in diseases. server/player.c: replace FREE_AND_CLEAR with FREE_AND_CLEAR_STR - was freeing data that shouldn't be freed. MSW 2002-08-01 | |||
Show difference between Revision 1.88 and 1.89 | |||
Revision 1.88 | mwedel | 2002/07/30 01:37:22 | +4 -5 |
Various fixes: INSTALL: Update with note about --with-includes configure option. common/loader.c, common/loader.l: Add comment about flag_invis_undead include/define.h: Add FLAG_INVIS_UNDEAD lib/adm/map_info: Modify to not follow symbolic links. server/monster.c: Modify can_detect_enemy to be a bit more straightforward in its logic. Also, modify detection of invisible creatures - don't reduce duration, just return that the monster can detect the player. There were also spurious messages about the player being seen. Modify can_see_enemy to check FLAG_INVIS_UNDEAD, also fix broken comparison server/player.c: Clear FLAG_INVIS_UNDEAD when invisibility ends. Fix action_makes_visible() - had reverse logic on FLAG_MAKE_INVIS check, and a typo in the printed message. server/spell_effect.c: cast_invisible() to use FLAG_INVIS_UNDEAD - also check for maximum duration, and only search active objects when clearing enemy. server/weather.c: Fix off by one on comparision when intializing maps darkness when loading map from disk. In dawn_to_dusk, don't do further processing if the light hasn't changed. MSW 2002-07-29 | |||
Show difference between Revision 1.87 and 1.88 | |||
Revision 1.87 | mwedel | 2002/07/25 01:57:14 | +21 -10 |
Various bug fixes, add glyph spell: TODO: Updated common/map.c: Fix change_map_light() - if darkness was reduced to zero, it wouldn't properly notify the players or update the maps they are on. Also, make it more robust to handle changes by more than one. include/define.h: Increase NROFREALSPELLS include/spellist.h: Add glyph spell. include/spells.h: Add SP_GLYPH entry. server/attack.c: Fix up kill_object() - it has had some many various additions that it was difficult to follow the logic. It should also now do better check on skill objects when awarding experience. server/player.c: Add some checks/addition to properly deal with freeing the name_pl in the player object. Fix it so that if you are braced, you still won't attack friendly creatures. server/rune.c: Add cast_generic_rune() to handle the glyph and rune spell. server/spell_effect.c: Fix up some pointers in cast_cause_disease() - needed so that it works properly when embedded in a glyph. Have it return 1 even if no one caught anything - you still cast the spell, so you should lose the grace for it. server/spell_util.c: Fix some formatting. Break out the code dealing with rune into cast_generic_rune() socket/loop.c: Add flag to player command mapping, and update structure - if flag is set, command can only be issued when player is in play, and not when waiting at the quit or login prompt - fixes crashes where players could wait for the map to get swapped out (after quitting), and then looking at a space. socket/request.c: Fix map2cmd so that invisible players are drawn. MSW 2002-07-24 | |||
Show difference between Revision 1.86 and 1.87 | |||
Revision 1.86 | mwedel | 2002/07/16 00:21:24 | +3 -1 |
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.85 and 1.86 | |||
Revision 1.85 | mwedel | 2002/07/14 23:57:13 | +314 -236 |
-- 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.84 and 1.85 | |||
Revision 1.84 | mwedel | 2002/06/15 02:47:36 | +4 -4 |
TODO: Additional updates. Add support for loading the EMERGENCY_.. locations from a .emergency file in the map directory. This makes it easy to switch map distributions without the need to recompile. The emergency information is now stored in the settings structure. common/init.c: add EMERGENCY_ defines to default values in setting. Add init_emergency_mappath which loads the information. include/config.h: Remove NEW_WORLD_MAP definition, as it is no longer needed. Update some of the EMERGENCY_.. information as we don't need to include the information for the new world map. include/global.h: Add emergency_.. fields to settings structure. server/login.c, server/main.c, server/player.c: Update references from the EMERGENCY.. values to settings.emergency values. MSW 2002-06-15 | |||
Show difference between Revision 1.83 and 1.84 | |||
Revision 1.83 | mwedel | 2002/06/07 02:00:45 | +8 -8 |
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.82 and 1.83 | |||
Revision 1.82 | mwedel | 2002/05/18 22:55:48 | +1 -4 |
The bulk of this commit is to modify the server to only send the lower rightmost part of multipart archetypes that use the same head. This allows support of big images in the client. common/arch.c: Modify first_arch_pass to figure out the tail_x/y values for multipart archs. Rename the prev variable to head, as that it really what it is. Remove quick_pos info. common/object.c: remove quick_pos info from object. doc/Developers/images: Add notes about using merged images. doc/Developers/protocol: Add information about the map1a command, which is used to for big image support. Remove map2 documentation. include/map.h: Add MAP_LAYERS define instead of using hardcoded value of 3. include/newserver.h: Change the MapCell to use MAP_LAYERS - saves considerable memory. Add defines for MAX_CLIENT_ map sizes. Remove map1cmd, map2cmd elements from socket structure - instead use enumeration of mapmode - only one map type will be used at any time by the client, so no reason to have individual elements - it also makes it easier to add new mapmode commands. include/object.h: remove quick_pos, update_tag from object structure. Add tail_x, tail_y values to archetype structure. include/player.h: Remove some now unused values from the player structure (drawn, floor, floor2, darkmask). These have been superseded by the map cells in the socket structure for quite a while. include/sockproto.h: rebuilt server/player.c: Remove code that initialized the drawn values in the player structure since they no longer exist. socket/init.c: Replace map1cmd, map2cmd elements in socket structure with mapmode element. Modify init_ericserver so that it properly passes an int when setting the SO_REUSERADDR field. socket/request.c: Modify code in SetUp function to use the new mapmode enumeration in the socket structure. Add support for map1acmd setup option. Throughout map code, replace MAXMAPCELLFACES with MAP_LAYERS. modify map_clearcell to take options for values to clear the cell to. Add have_head, check_head, and update_space commands - used with the map1 command to store and find head information. draw_client_map1 modified to support map1a extensions, as well as added logic for checking for heads in blocked and out of viewable map spaces. Some of the code is simplified by using the update_space function, since the logic for processing each layer was otherwise the same. remove draw_client_map2 function. esrv_map_scroll has same logic - some variables and code formatting changes. MSW 2002-05-18 | |||
Show difference between Revision 1.81 and 1.82 | |||
Revision 1.81 | mwedel | 2002/04/21 00:23:20 | +4 -4 |
Various minor bugfixes. Note the changes may appear larger than they really are due to formatting/indentation changes. Run diff -w to supress those: make_win32/installwin32.bat: Update for new image files. server/c_object.c: Fix SAVE_INTERVAL #ifdef block. It failed to compile as it was written. Simplify code, but it should have the same effect. server/move.c: Modify push_object so that if a player swaps position with his pet, we send a esrv_map_scroll. This should save bandwidth, and also prevents display corruption when fog of war on the client is in use. Add some new comments, adjust some formatting. server/player.c: Fix minor typo in comment. server/skills.c: Modify new_draw_info that is responsible for the "You pray" messages to not have the NDI_UNIQUE flag so that they can get batched up, depending on users value of output-count server/swap.c: Remove swapped out per player unique maps from the list of maps. Reduces cpu and memory consumption by a minor amount, and results in a cleaner 'maps command output. server/weather.c: Add standard crossfire banner to top of file. Modify long long declartion to just be a long. MSW 2002-04-20 | |||
Show difference between Revision 1.80 and 1.81 | |||
Revision 1.80 | mwedel | 2002/03/12 22:59:35 | +11 -1 |
server/player.c: modify play_again to remove the player object if not done so already. This fixes a crash observed on metalforge when a player quit at the roll/swap stats prompt (undocumented that you can use 'q' then to do so). It looks like this should also fix crashes that may be associated with the kick and shutdown wiz commands. MSW 2002-03-12 | |||
Show difference between Revision 1.79 and 1.80 | |||
Revision 1.79 | avogl | 2002/03/01 15:33:11 | +143 -4 |
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.78 and 1.79 | |||
Revision 1.78 | jbontje | 2002/01/16 04:51:32 | +2 -1 |
include/player.h include/sproto.h server/c_chat.c server/player.c: New player command 'reply', replies to the last person who told you something. server/c_wiz.c: New DM command 'teleport', lets a DM teleport next to target player, it is an inverse summon. server/commands.c: Add hooks for 'reply' and 'teleport'. mids 2002-01-16 | |||
Show difference between Revision 1.77 and 1.78 | |||
Revision 1.77 | garbled | 2002/01/02 00:53:23 | +51 -90 |
Backout of Anim25 patch by michtoen. It was causing server crashes, and is generally not useful in a non-iso crossfire. Discussed w/ mwedel. | |||
Show difference between Revision 1.76 and 1.77 | |||
Revision 1.76 | mwedel | 2001/12/15 21:31:03 | +2 -2 |
common/object.c random_maps/Makefile.in server/c_wiz.c server/player.c server/plugins.c server/timers.c socket/request.c: Most of the changes are to just fix compiling warnings or errors so that it compiles on sparc solaris with the workshop compiler (things like }; should just be }). Declaration for alphasort was missing in plugins.c. random_maps/Makefile.in had the wrong order in linking - the system library needs to be linked in after the crossfire libraries. crossedit/App.c: Fix for running on 8 bit color - colormap was not being initialized to usuable default value. crossedit/xutil.c: Broken code when duplicating faces for undefined images. That code should never really be used, as pixmaps currently are always contiguous. MSW 2001-12-15 | |||
Show difference between Revision 1.75 and 1.76 | |||
Revision 1.75 | michtoen | 2001/11/27 22:44:42 | +90 -51 |
Anim25 Patch This patch do this things mainly: - include same animation sheme for players and monster again - introduce guard/walk/fight animation in 8 direction - direct action: monster change from guard/walk animation when they get attacked and fall back to walk or guard when the enemy is gone - Monster do "intelligent" animation -> facing enemy -> turn and run when scared - fixed some animation flaws which invokes late anim update (monster moves first and hold one frame old facing) - Include real time player animation! -> player starts moving animation when player moves -> fall back to guard anim when player do nothing -> plays fight anim when hit some Hope i got all. This patch is much not so hard as it sounds. Most of these features was easy to include because the old anim engine was able to do about 80% of this. I had just to boost up the logic. | |||
Show difference between Revision 1.74 and 1.75 | |||
Revision 1.74 | 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.73 and 1.74 | |||
Revision 1.73 | michtoen | 2001/11/26 11:52:26 | +6 -4 |
Attack Patch 25.11.01 Detailed information in the dev list. The changes are to many to explain here. | |||
Show difference between Revision 1.72 and 1.73 | |||
Revision 1.72 | michtoen | 2001/11/17 15:25:21 | +2 -1 |
commit the ext2 gender & guild system - first part. Sorry, my cvs sytem is still broken, i will write a better doc to the list. Notice some other small fixes too. | |||
Show difference between Revision 1.71 and 1.72 | |||
Revision 1.71 | michtoen | 2001/11/04 14:22:55 | +0 -0 |
One Arch/one pic patch. I use a modified map1cmd, called map2cmd for it. This is a first tryout implementation. The code can more then only submit offset data of multi arch, its also possible to include animation tags for the faces - we have now more free flags. The code is NOT optimized. Iam still unsure , what the best way is to send all this data. Sort & parsing cost time. At this stage, ill quick parse is by server, use slightly more bandwitch and let do the client more work. But thats perhaps not the best way. But this code will allow to install the arches for this one arch/one pic. MT | |||
Show difference between Revision 1.70 and 1.71 | |||
Revision 1.70 | michtoen | 2001/11/02 10:22:03 | +3 -1 |
add FLAG_PARALYZE Now, all player & monster have this flag set, when they are effected by paralyzes spell. I have not checked pets & summoned stuff yet, it will follow. | |||
Show difference between Revision 1.69 and 1.70 | |||
Revision 1.69 | 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.68 and 1.69 | |||
Revision 1.68 | gros | 2001/10/14 02:57:14 | +79 -21 |
Major changes: Added dynamic plugin support, removed old Guile support. - Gros 10/14/01 | |||
Show difference between Revision 1.67 and 1.68 | |||
Revision 1.67 | garbled | 2001/09/26 16:34:08 | +11 -8 |
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.66 and 1.67 | |||
Revision 1.66 | mwedel | 2001/08/29 02:14:16 | +223 -36 |
include/define.h: Pickup type defines added. include/player.h: Change mode (pickup mode) to 32 bits. server/c_object.c: command_pickup function modified to support all the new pickup options. server/player.c: Fix for path_to_player to prevent crashes. Add check in move_player_attack just in case. check_pick function modified to support new pickup options. do_some_living modified to eat flesh items if player is starving and they don't have any food. server/spell_effect.c: cast_detection modified so that detect magic/curse will not show objects beneath the floor. Change so that detect_monster and detect_evil spells copy the face of what they detected - gives better appearance on client. socket/item.c: fix bug LookAt that ws checking blocked_los on wrong offset. MSW 2001-08-28 | |||
Show difference between Revision 1.65 and 1.66 | |||
Revision 1.65 | gros | 2001/08/27 11:47:47 | +5 -3 |
Corrected a bug related to the new map code (NULL map pointer not checked) - Chachkoff Y. 08/27/01 | |||
Show difference between Revision 1.64 and 1.65 | |||
Revision 1.64 | mwedel | 2001/08/21 00:39:30 | +340 -229 |
Enhancements to make monsters 'do the right thing' with relation to tiled maps (ie, will detect players and attack them if on an adjoining tiled maps). This involved a rewrite of path_to_player - I've tested this out, and if anything, it seems that monsters may be more aggressive on spellcasting. ++ common/map.c: blocked modify to make sure it is checking valid coordinate value. blocked_link,blocked_two modified to translate for tiled maps. Add load_and_link_tiled_map which loads a tiled map and links in all pointers relative to adjoining maps. out_of_map modified to use this function instead of doing the work itself. Add get_rangevector function that returns offset, direction, and distance between two objects, taking into account tiled maps. get_rangevector_from_mapcoord added which is similar to get_rangevector, but takes a map and coordinates instead of a second object. on_same_map function added which returns true if the two objects are on the same logical (ie tiled) maps. doc/crossfire.doc: Add note about what Int does for monsters. include/map.h: Add some comments, and add structure for rangevector function return values. server/attack.c: add calls to on_same_map instead of doing op->map comparisons. server/monster.c: Many functions modified to properly handle tiled maps properly. server/pets.c: get_pet_enemy modified to know about tiled maps. server/player.c: get_nearest_player modified to know about tiled maps. path_to_player rewritten to know about tiled maps - I think some other bugs were also fixed in return values. Split player_attack_door from move_player attack to keep functions a more reasonable size. move_player_attack, player_can_view modified to know about tiled maps. server/skills.c: can detect_enemy modified to take another parameter - call in steal updated to pass this parameter. server/spell_util.c: ok_to_put_more, can_see_monsterP modified to handle tiled maps properly. socket/item.c: look_at modified to return proper results when player looks at something on an adjoining tiled map. ++ End of checkin | |||
Show difference between Revision 1.63 and 1.64 | |||
Revision 1.63 | mwedel | 2001/07/13 23:11:18 | +18 -18 |
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.62 and 1.63 | |||
Revision 1.62 | mwedel | 2001/06/29 00:59:46 | +1 -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.61 and 1.62 | |||
Revision 1.61 | michtoen | 2001/06/13 07:51:58 | +9 -10 |
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.60 and 1.61 | |||
Revision 1.60 | michtoen | 2001/06/13 05:51:57 | +27 -8 |
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.59 and 1.60 | |||
Revision 1.59 | michtoen | 2001/06/10 23:13:23 | +10 -1 |
enable player 8 way direction | |||
Show difference between Revision 1.58 and 1.59 | |||
Revision 1.58 | mwedel | 2001/06/04 01:41:02 | +9 -6 |
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.57 and 1.58 | |||
Revision 1.57 | mwedel | 2001/05/28 23:41:54 | +14 -51 |
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.56 and 1.57 | |||
Revision 1.56 | mardahl | 2001/05/24 21:42:26 | +10 -7 |
Implemented reduced death penalty: 20% or 3 levels, whichever is lower. --PeterM 5/24/2001 | |||
Show difference between Revision 1.55 and 1.56 | |||
Revision 1.55 | mwedel | 2001/05/09 01:58:12 | +1 -2 |
Various improvements to make finding memory leaks easier. common/anim.c: Add free_all_anim function common/arch.c: Modify free_all_arch to free more data common/init.c: If running under MEMORY_DEBUG, don't pre-allocate objects. common/map.c: Add free_all_maps functiion. common/object.c: Modify object allocations if using MEMORY_DEBUG to only malloc one object at a time, and not pre-allocate objects. common/readable.c: Fix memory leak. common/shstr.c: Include autoconf.h so it can pull in dmalloc.h file. include/config.h: Remove notes of what was removed a long time ago. Add MEMORY_DEBUG option. include/libproto.h, include/sockproto.h, include/sproto.h: automatic rebuild server/c_misc.c: Fix 'malloc info command so it reports right memory total for maps. Add command_style_map_info which sums up memory used by style maps. server/commands.c: Add style_info wiz command which dumps memory usage for style maps. server/init.c: Have sighup handler call cleanup function. server/main.c: Fix clean_tmp_files which could result in crash if one of the maps in memory has 0 reset time. Modify cleanup function to free more data. server/player.c: op_on_battleground: Fix compile warning about unuused variable. socket/init.c: Change name of free_all_ericserver to free_all_newserver, have it free all face data. MSW 2001-05-08 | |||
Show difference between Revision 1.54 and 1.55 | |||
Revision 1.54 | mardahl | 2001/05/01 06:50:10 | +2 -2 |
Withdraw the change to lifesaving. Lifesaving hasn't worked in so long that more thought is needed before making it work again! PeterM | |||
Show difference between Revision 1.53 and 1.54 | |||
Revision 1.53 | mardahl | 2001/04/30 03:15:56 | +3 -1 |
Bring the player back to his savebed when he consumes an item of lifesaving. | |||
Show difference between Revision 1.52 and 1.53 | |||
Revision 1.52 | mwedel | 2001/04/30 01:34:29 | +7 -9 |
common/object.c: Add clear_owner function. include/libproto.h: rebuild. server/player.c: Modify op_on_battleground to look for battleground anyplace on space. Temp for for wall of thorns on space - as long as maps don't try to abuse the use of battlegrounds, should be OK. server/time.c: Add clear_owner call to stop_arrow. Fixes problem of thrown objects not getting saved. MSW 2001-04-28 | |||
Show difference between Revision 1.51 and 1.52 | |||
Revision 1.51 | mwedel | 2001/04/20 00:39:04 | +2 -1 |
server/player.c: Clear op->chosen_skill when we get to the play_again prompt. Otherwise, the server may try to use this later on, and it no longer points to a valid object, so it results in a crash. MSW 2001-04-19 | |||
Show difference between Revision 1.50 and 1.51 | |||
Revision 1.50 | mwedel | 2001/04/09 01:59:46 | +5 -9 |
Main thing this commit does: Undo MT's last commit, which should not have been checked it at this time. As that did not fix any bugs, it should wait until after 1.0 (at least one file also fails to compile) Fix minor bug in server/player.c which prevent keyring weight from getting updated when keys are automatically used out of the rings. move the GETTIMEOFDAY macro to include/global.h so it doesn't have to be done in both arch.c and time.c remove some ^M characters from porting.c MSW 2001-04-08 | |||
Show difference between Revision 1.49 and 1.50 | |||
Revision 1.49 | michtoen | 2001/04/08 19:56:54 | +10 -1 |
Add skill exp | |||
Show difference between Revision 1.48 and 1.49 | |||
Revision 1.48 | mwedel | 2001/04/07 21:37:26 | +9 -5 |
server/player.c: Don't let players shoot arrows at themself. Also, minor changes to use new_draw_info_format. server/swap.c: If recycle temp maps, don't save out random maps to get recycled. MSW 2001/04/07 | |||
Show difference between Revision 1.47 and 1.48 | |||
Revision 1.47 | michtoen | 2001/04/06 14:07:22 | +2 -2 |
win32: change // to /* */ | |||
Show difference between Revision 1.46 and 1.47 | |||
Revision 1.46 | michtoen | 2001/04/05 19:41:07 | +4 -2 |
*** empty log message *** | |||
Show difference between Revision 1.45 and 1.46 | |||
Revision 1.45 | mwedel | 2001/03/30 01:52:24 | +2 -2 |
include/sproto.h, server/c_wiz.c server/main.c server/player.c socket/loop.c: Modify leave function to take a second parameter that determines if it should print a message about the player leaving the game or not. Proper use of this prevents duplicate XXX left the game messages. MSW 2001-03-29 | |||
Show difference between Revision 1.44 and 1.45 | |||
Revision 1.44 | mwedel | 2001/03/30 01:27:48 | +2 -1 |
common/image.c, include/define.h, include/global.h: Add empty_face structure and appropriate code to initialize it. This is used for the server side look selection. include/newserver.h: Add NUM_LOOK_OBJECTS to control number of look objects to send at any one time. add look_position field to the newsocket structure. server/move.c: clear look position as player moves. server/player.c: initalize look_position element in structure. socket/item.c: modify esrv_draw_look to sne NUM_LOOK_OBJECTS at any one time, and to also send pseudo objects that lets the player scroll up and down. modify ApplyCmd so that if it detects the application of one pseudo objects to adjust the look_position. MSW 2001-03-29 | |||
Show difference between Revision 1.43 and 1.44 | |||
Revision 1.43 | mwedel | 2001/03/16 23:03:08 | +2 -10 |
MSW 2001/03/16: Change code so that if player dies and loading the players savebed map does not work, return player to EMERGENCY_MAPPATH instead. New function added to server/main.c called enter_player_savebed which does the work, Files changed: include/sproto.h server/main.c server/player.c server/spell_effect.c (comment added) Unrelated change: Remove messages about multiple resist types set. Files changed: common/loader.l common/loader.c | |||
Show difference between Revision 1.42 and 1.43 | |||
Revision 1.42 | avogl | 2001/03/13 13:03:27 | +2 -2 |
collected images and spelling mistake --AV | |||
Show difference between Revision 1.41 and 1.42 | |||
Revision 1.41 | mwedel | 2001/02/26 21:41:25 | +107 -117 |
MSW 2001/02/25: General player login cleanup. This should fix the crash when players re-roll stats too often. So far, it also seems to have the additional effect that calculated players on map now appears to be correct. common/player.c: No longer allocate the player object structure in get_player_ob (function is really misnamed). Callers to this function were not using the allocated function. server/login.c: Add leave_map call when player is loaded. server/main.c: Add leave_map function. server/player.c: Move get_player function to start of file - can declare it static that way. Move some initialize from add_player to get_player. Add set_first_map function. Add appropriate calls to leave_map and set_first_map when players join and leaves the game. | |||
Show difference between Revision 1.40 and 1.41 | |||
Revision 1.40 | mwedel | 2001/02/23 01:20:39 | +22 -17 |
MSW 2001-02-22 Changes so that character is inserted into the map properly at the roll stat stage. May also fix the crashes. | |||
Show difference between Revision 1.39 and 1.40 | |||
Revision 1.39 | mwedel | 2001/02/23 00:06:35 | +2 -2 |
MSW 2001/02/22: TODO: Add some items, remove some others, remove outline of future versions, since it was out of date. common/loader.l,loader.c: Declare msgbuf a static outside the lex_load function. lex_load was otherwise clearing it each time it was called, which resulted in empty messages for the random artifacts (since the call lex_load one line at a time). Instead, we just zero this at start of load_object. Original reason of this change was due to purify errors - as I look at the code, it appears even before these changes that it was clearing the buffer properly. common/map.c: removing pending field from map objects. common/re-cmp.c: Comment out some code which was resulting in too many false compares. include/config.h: increase default for MAX_OBJECTS. 6000 is a bit small on current systems. include/map.h: Remove pending field from map structure. random_maps/treasure.c: Increase size of doorlist. Fixes crash, in that if a random map could place 8 doors around the treasure, the list was not terminated, so the problem would eventually try to read/dereference random memory after the array. server/c_misc.c: Remove pending field from maps, so remove functions and other places that referred to it (like the maps command) server/c_wiz.c: fix up wiz map reset command. Not really tested, but old code had some definate problems just from visual inspection. server/main.c: Further fix for unique exits - relative paths to unique maps from non unique maps should now work. server/monster.c: Various fixes - one is that should get more reliable distance values for multipart monsters. Second, modify dist_att to calculate from closest part of monster, and not the head of the monster. server/pets.c: Remove code dealing with pending objects. server/player.c: Don't remove invisible objects in players inventory when playing with permadeath mode. server/spell_util.c: If you try to cast denied spell, it no longer costs any spellpoints. socket/item.c: Fix bug where it was using 'item' protocol command instead of 'item1' End of MSW 2001/02/22 checkin. | |||
Show difference between Revision 1.38 and 1.39 | |||
Revision 1.38 | cvs | 2001/02/12 01:11:11 | +1 -7 |
MSW 2001/01/11: include/rproto.h: Rebuilt for new random map code. server/player.c: remove player insert in key_roll_stat - player is already inserted. server/swap.c: When swapping out map, see if it has already reached reset time, and if so, just delete it and not save it. In flush_old_maps, now have it check for maps that have no timeout set - this sometimes happens when players save/die on maps. | |||
Show difference between Revision 1.37 and 1.38 | |||
Revision 1.37 | cvs | 2001/01/31 01:54:52 | +1 -9 |
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.36 and 1.37 | |||
Revision 1.36 | cvs | 2001/01/26 01:23:26 | +12 -2 |
Undo some previous changes - remove players from friendly list, and instead change get_nearest_player to also look at the player list. check_wakeup (in monster.c) had to be changed also since it used the friendly list. MSW 2001-01-25 | |||
Show difference between Revision 1.35 and 1.36 | |||
Revision 1.35 | cvs | 2001/01/17 00:15:25 | +4 -3 |
Changes to fix monsters not attacking players. Player was not getting marked as friendly, and thus getting removed from the list. server/login.c: set FLAG_FRIENDLY when we load the player and call add_friendly_object. server/player.c: add_player: set FLAG_FRIENDLY. get_nearest_player modified to discard non friendly objects on friendly list - makes bug reprocible much more easily. MSW 2001-1-16 | |||
Show difference between Revision 1.34 and 1.35 | |||
Revision 1.34 | cvs | 2001/01/15 01:11:39 | +18 -5 |
check friendly list for freed objects and remove them when we find them. This should hopefully fix the cause of the "BUG: get_attack_mode(): freed object" error messages. This is an infrequent and not easily reprocible error message, so I can not be sure this will fix all those error messages, but the code at least looks correct. MSW 2000-1-14 | |||
Show difference between Revision 1.33 and 1.34 | |||
Revision 1.33 | cvs | 2001/01/12 01:22:43 | +2 -2 |
Change query we send to player after each race description so popup is accurate. Plus, with long descriptions, putting in directions is probably useful in any case. MSW 2000-1-11 | |||
Show difference between Revision 1.32 and 1.33 | |||
Revision 1.32 | cvs | 2000/12/27 01:53:35 | +43 -19 |
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.31 and 1.32 | |||
Revision 1.31 | avogl | 2000/12/20 14:29:29 | +1 -12 |
I intended to clean up the character-creation process and thus changed the initial starting place from "/city/city" to "/HallOfSelection", like it should be. I hope this will not cause unwanted side-effects. I really did my best to test it and prevent any bugs caused by this change. If you still discover some weirdness that might be related to this change, please lemme know. -AV | |||
Show difference between Revision 1.30 and 1.31 | |||
Revision 1.30 | avogl | 2000/12/18 11:43:30 | +2 -1 |
player.c: Hopefully fixed a bug related to dying on battleground. spell_effect.c: The spell "word of recall" will now point to the players's last-applied savebed. This will make players more independant from Scorn. | |||
Show difference between Revision 1.29 and 1.30 | |||
Revision 1.29 | cvs | 2000/12/18 01:38:25 | +5 -3 |
MSW 2000/12/17: Various changes. Note that the scope of files in this checkin make it appear that a lot was changed, but in fact it was mostly just re-orginization - very little code has actually changed. include/autoconf.h.in: Add HAVE_LIBDES to file. include/config.h: Remove comments after defines for MAP_MIN/MAX timeouts. This just removes some warnings during compile. comments are now on lines by themselves. include/player.h: remove shootstrength for player structure. It was unused. server/Makefile.in: remove input.c file, add c_range.c file. server/c_chat.c: remove command_last, add command_shout and command_tell from input.c to this file. Also fix bug in command tell which would let players crash server at will. server/c_misc.c,server/c_object.c: Relocate many functions from input.c into these files. server/c_move.c, server/c_new.c: Add standard crossfire banner comment. server/c_range.c: New file - contains range related commands, including spell casting (relocated from input.c) server/c_wiz.c: move command_invisible from input.c into this file. server/commands.c: Remove unused commands (bell, last, strength) server/input.c: removed file. server/main.c: Change HAVE_DES_H to HAVE_LIBDES server/player.c: When choosing a race, draw it facing south for best presentation of image. server/spell_util.c: Remove dead code (#if 0 shootstrength related code) socket/loop.c: remove unused variables. NOTE: Due to the addition/removal of files, you will need to do 'config.status; make depend; make' from the top level directory for everything to be compiled properly. End of MSW 2000/12/17 checkin. | |||
Show difference between Revision 1.28 and 1.29 | |||
Revision 1.28 | cvs | 2000/12/16 18:39:16 | +10 -1 |
MSW 2000/12/16: server/player.c: If the player race archetype has a message, print that out. This allows a descriptive message about what the different races will get. The message is removed from the player once they decide on the race. common/living.c: Add some parens around some PR resistant checks - eliminates warnings from gcc. server/disease.c: have cure_disease remove all diseases a player is infected with. The code suggested it was attempting to do so, and the messages it printed out certainly suggested that the character was disease free. | |||
Show difference between Revision 1.27 and 1.28 | |||
Revision 1.27 | avogl | 2000/12/16 17:32:14 | +2 -2 |
gods.c: Fixed a problem concerning PR: The god's immunities must not always be transferred to the players joining the cult. For example: Sorig has elec +100%, but the player shall only get +30%. player.c: Small mod, to make the new mini-playguides not startequip 1. So players can keep them and even pass them around. | |||
Show difference between Revision 1.26 and 1.27 | |||
Revision 1.26 | peterm | 2000/12/15 15:29:56 | +4 -2 |
Fixed an abuse of containers with too much value | |||
Show difference between Revision 1.25 and 1.26 | |||
Revision 1.25 | cvs | 2000/12/10 21:59:49 | +3 -1 |
MSW 2000/12/10: include/config.h: Set ARCHTABLE size to correct value. server/player.c: Have server send update item to client for players face while select class. Added esrv_new_player in Roll_Again, because without it, the client had yet to receive information on what tag the player was so could not make sense of the updated face. server/spell_effect.c: Balance issues for polymorph. Reduce maximum value for high valued objects, remove ability to polymorph generators, put maximum level on polymorphed monsters and give them saving throws against the effects. | |||
Show difference between Revision 1.24 and 1.25 | |||
Revision 1.24 | cvs | 2000/12/06 01:40:40 | +4 -3 |
MSW 2000/12/5: server/player.c: Move location of where it sets the player has_hit variable until after we have confirmed that the player has actually attacked a monster and not that the space is blocked. Fixes various problems and make behaviour more predictable. | |||
Show difference between Revision 1.23 and 1.24 | |||
Revision 1.23 | cvs | 2000/12/03 18:40:05 | +2 -3 |
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.22 and 1.23 | |||
Revision 1.22 | avogl | 2000/11/14 16:50:33 | +14 -9 |
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.21 and 1.22 | |||
Revision 1.21 | cvs | 2000/11/09 01:25:09 | +16 -7 |
server/player.c: removed unused tmp2 variable from move_player_attack. modify depletion in kill_player so the maximum depletion for a stat is -50. This should preven stat wrapping from -126 to 127. MSW 2000-11-08 | |||
Show difference between Revision 1.20 and 1.21 | |||
Revision 1.20 | avogl | 2000/11/08 14:17:41 | +73 -4 |
The new battleground-feature: I have created a place where friendly players can battle each other without having to fear death. The defeated player will be teleported to a special location (the first-aide station). No exp nor stats loss. Moreover, exp-draining doesn't work inside the arena, acid won't harm the equipment. To make things easier, peaceful mode is ignored in the arena. --AndreasV | |||
Show difference between Revision 1.19 and 1.20 | |||
Revision 1.19 | jec | 2000/11/06 17:06:47 | +1 -2 |
* stop_item() / attack fix patch 2000-11-06 | |||
Show difference between Revision 1.18 and 1.19 | |||
Revision 1.18 | jec | 2000/10/30 16:09:59 | +9 -5 |
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.17 and 1.18 | |||
Revision 1.17 | peterm | 2000/10/16 14:19:31 | +51 -14 |
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.16 and 1.17 | |||
Revision 1.16 | cvs | 2000/08/02 01:04:50 | +91 -27 |
include/config.h, include/global.h, common/init.c, common/living.c, server/init.c, server/player.c, server/skill_util.c: Add permanent experience and balanced stat loss features (code by Garth Denley). Permanent experience make some experience in the skills permanent. Balance stat loss makes stat loss less likely/costly at low level and more costly at higher levels. These features are by default off, but can be turned on either in the config.h file or via command line options. Code checked in by MSW 8/1/2000 | |||
Show difference between Revision 1.15 and 1.16 | |||
Revision 1.15 | jec | 2000/06/23 04:55:11 | +54 -59 |
server/player.c: check_pick(): Rewrite of this function to consistently skip items that can't be picked up, and to only use a single loop over all items on the map square. | |||
Show difference between Revision 1.14 and 1.15 | |||
Revision 1.14 | jec | 2000/05/29 11:31:26 | +5 -3 |
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 04:50:49 | +14 -18 |
* apply() cleanup patch 26/5/2000 | |||
Show difference between Revision 1.12 and 1.13 | |||
Revision 1.12 | jec | 2000/05/21 16:41:46 | +2 -2 |
common/init.c, common/loger.c, include/logger.h, server/init.c: New log level llevInfo which is the new default log level. Many other files: Use llevInfo instead of llevError where appropriate. Use 'settings.debug >= llevDebug' instead of 'settings.debug'. server/main.c: Use a marker object to track current position in the list of active objects. Using a pointer didn't work because all objects on that list can be removed from it by process_object(). One of the things this fixes is bogus "Free object on list" errors. | |||
Show difference between Revision 1.11 and 1.12 | |||
Revision 1.11 | cvs | 2000/05/07 22:22:52 | +12 -7 |
server/player.c: add out_of_map check to stand_near_hostile function. This fixes a server crash if the player uses a hiding skill near the edge of a map. MSW 5/8/2000 | |||
Show difference between Revision 1.10 and 1.11 | |||
Revision 1.10 | cvs | 2000/04/22 02:16:41 | +93 -50 |
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.9 and 1.10 | |||
Revision 1.9 | jec | 2000/04/17 09:18:13 | +4 -2 |
See CHANGES file. | |||
Show difference between Revision 1.8 and 1.9 | |||
Revision 1.8 | cvs | 2000/03/27 00:25:55 | +4 -4 |
server/player.c: If player is using pickup mode 6, only have them pick up the item if they know it is magical. Prior to change, items would be picked up if they are magical, but not if the player knew that, so the code was giving extra knowledge to players. Bug reported by Kurt Fitzner, checked in by Mark Wedel, 3/26/2000 | |||
Show difference between Revision 1.7 and 1.8 | |||
Revision 1.7 | cvs | 2000/03/11 01:17:03 | +54 -49 |
Split off kill_player function from do some living, and check for player death upon player login. This splits up an otherwise very large function, but more importantly, the second point allows NOT_PERMADEATH to work as expected when the player is dead when logged out. Previous, the if the player was dead when they logged out, it would just kill off the character permanently (without grave marker or anything), even in NOT_PERMADEATH mode. Also, cleaned up player load code to remove code that supported very old style save files. Files changed: server/login.c server/player.c include/sproto.h - msw | |||
Show difference between Revision 1.6 and 1.7 | |||
Revision 1.6 | damn | 1999/09/17 14:01:19 | +87 -32 |
- sp regen penalty from armour calculated in fix_player instead of being recalculated for each spell point gained. --DAMN | |||
Show difference between Revision 1.5 and 1.6 | |||
Revision 1.5 | damn | 1999/08/18 15:55:37 | +2 -2 |
Cut "static" from FindKey when adding its prototype to sproto.h. FindKey is now called from apply.c to open locked containers. | |||
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/05/08 17:52:42 | +3 -2 |
stat depletion on death fixed. Previously, it didn't actually remove a stat. --PeterM | |||
Show difference between Revision 1.2 and 1.3 | |||
Revision 1.2 | uid200 | 1999/05/05 01:30:25 | +0 -2 |
Remove berzerk code/variable from player structure. The code had no effect - whatever functionality it once had has been removed in the past. | |||
Show difference between Revision 1.1 and 1.2 | |||
Revision 1.1 | uid200 | 1999/04/02 13:10:04 | None |
Initial revision | |||
First version | |||
Revision 1.1.1.1 | uid200 | 1999/04/02 13:10:04 | +0 -0 |
First CVS revsion: crossfire-0.95.3 | |||
Show difference between Revision 1.1 and 1.1.1.1 |