AW: [CF-Devel] cfclient issues

crossfire-devel-admin at archives.real-time.com crossfire-devel-admin at archives.real-time.com
Fri May 23 08:20:20 CDT 2003


I find some bad bug in player movement,
which can course this client affects too.

Because we track in the client now more accurate
what happens on the map, this bug will come in effect -
missing

esrv_map_scroll(&op->contr->socket, freearr_x[dir],freearr_y[dir]);

functions when the player moves.

This is the right way to move a player (from move_ob() ).

	remove_ob(op);
	op->x+=freearr_x[dir];
	op->y+=freearr_y[dir];
	insert_ob_in_map(op,op->map,originator,0);
	/* Currently, assume that players will only be single space objects */
	if (op->type==PLAYER) {
	    esrv_map_scroll(&op->contr->socket, freearr_x[dir],freearr_y[dir]);
	    op->contr->socket.update_look=1;
	    op->contr->socket.look_position=0;
	}

This is, how for example the shop_mat function teleports a player back
in the shop when he can't pay all unpaid items:

   else {
	/* if we get here, a player tried to leave a shop but was not able
	 * to afford the items he has.  We try to move the player so that
	 * they are not on the mat anymore
	 */

	int i = find_free_spot (op->arch, op->map, op->x, op->y, 1, 9);
	if(i == -1) {
	    LOG (llevError, "Internal shop-mat problem.\n");
	} else {
	    remove_ob (op);
	    op->x += freearr_x[i];
	    op->y += freearr_y[i];
	    rv = insert_ob_in_map (op, op->map, shop_mat,0) == NULL;
	}
    }

The map scroll cmd is missed. This will bring every feature out of track,
which
depends on exactly map data & position data.

You will notice this effect sometimes, when you get ported/moved, and a
"shadow"
of your player char animation stays on the position where you was before.

This missing scroll cmds are numerous in the code - better to check every
insert_ob_in_map() and add it when needed.


_______________________________________________
crossfire-devel mailing list
     
     crossfire-devel at lists.real-time.com
     
     
     https://mailman.real-time.com/mailman/listinfo/crossfire-devel
     
     
    


More information about the crossfire mailing list