Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

the moving player problem



We have spoken on the problem before, that when running crossfire, any
movement is interpreted as a push on the player.  I have some more
questions, based on a tonights debugging session with 0.92.7

statutary info follows

  o What version of crossfire did you use?
	0.92.7

  o What type of computer did you use?
	SGI indy, R5000

  o What release of the operating system did it have?
	6.2

  o What windowing system are you using (Ie, openwindows, X11R6, etc)
	Irix flavoured X11R6

  o What compiler (and its version) did you use (ie, gcc, acc, etc)?
	cc

  o Which flags did you give it?
	No extra flags.

  o If you managed to compile Crossfire, include the output of
    "crossfire -o".

server/crossfire -o
Welcome to CrossFire, v0.92.7
Copyright (C) 1994 Mark Wedel.
Copyright (C) 1992 Frank Tore Johansen.
Maintained locally by: karlg@phaedrus.zikzak.net
Questions and bugs should be mailed to above address.
Non-standard include files:
<stdlib.h>
<malloc.h>
<memory.h
Secure:         <true>
Logging:        <true>
Libdir:         /usr/people/karlg/cross/lib
Perm file:      <LIB>/forbid
Shutdown file:  <LIB>/shutdown
Save player:    <true>
Save mode:      0660
Playerdir:      <LIB>/players
Save homedir:   <false>
Lock player:    <false>
Unique items:   <true>
Itemsdir:       <LIB>/unique-items
Lock items:     <true>
Use checksum:   <true>
Tmpdir:         /tmp
Fontdir:        /usr/people/karlg/cross/fonts
Compress:       /usr/bin/compress
Uncompress:     /usr/bin/uncompress
Map max timeout:        1000
Map reset:      <true>
Max objects:    6000
Use_calloc:     <false>
CHRFONT:        <false>
Use_swap_stats: <true>
Sound_effects:  <false>
DM mail:        karlg@phaedrus.zikzak.net
Server:         <true>
Port:           13326
Explore mode:   <false>
Shop listings:  <false>
Random encounter:       <false>
New improve weapon:     <true>
Max_time:       120000
IRIX phaedrus 6.2 03131015 IP22




/////
Now for the pertinent question bit

I presume that move_player's lines 1463-1465 in server/player.c

(to whit
	  if(op->contr->fire_on)
		fire(op,dir);
	  else move_player_attack(op,dir);

)

is meant to call move_player_attack at every step.  If there is nothing
for a player to attack, then it will do nothing, allowing map updates
to happen when you get the   update_object(op); on line 1474.

On this version, the test 

    if ((tmp->enemy != op) &&
      (tmp->type==PLAYER || QUERY_FLAG(tmp,FLAG_UNAGGRESSIVE)
	|| QUERY_FLAG(tmp, FLAG_FRIENDLY)) &&
	op->contr->peaceful && (!op->contr->braced)) {

on lines 1372-1375 of move_player_attack in player.c always goes to true.


However if you comment out the call to move_player_attack, and just let it
fall to update_obj the player turns in the correct direction, but does not
move at all.  What should be the correct values to update_object be, to get
a move?



Cheers,

Karl