Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
the moving player problem
- To:
- Subject: the moving player problem
- From: (Karl Geppert)
- Date: Wed, 23 Oct 1996 23:50:34 -0800 (EST)
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:
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:
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