ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/socket/image.C
(Generate patch)

Comparing deliantra/server/socket/image.C (file contents):
Revision 1.15 by root, Sat Dec 16 22:14:42 2006 UTC vs.
Revision 1.20 by root, Fri Feb 16 22:26:02 2007 UTC

1/* 1/*
2 CrossFire, A Multiplayer game for X-windows 2 * CrossFire, A Multiplayer game
3 3 *
4 * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team
4 Copyright (C) 2001 Mark Wedel 5 * Copyright (C) 2001 Mark Wedel
5 Copyright (C) 1992 Frank Tore Johansen 6 * Copyright (C) 1992 Frank Tore Johansen
6 7 *
7 This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 9 * it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or 10 * the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version. 11 * (at your option) any later version.
11 12 *
12 This program is distributed in the hope that it will be useful, 13 * This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details. 16 * GNU General Public License for more details.
16 17 *
17 You should have received a copy of the GNU General Public License 18 * You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software 19 * along with this program; if not, write to the Free Software
19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 21 *
21 The author can be reached via e-mail to <crossfire@schmorp.de> 22 * The author can be reached via e-mail to <crossfire@schmorp.de>
22*/ 23 */
23 24
24/** \file 25/** \file
25 * Image related communication 26 * Image related communication
26 * 27 *
27 * \date 2003-12-02 28 * \date 2003-12-02
32 * things like all the structures as globals. 33 * things like all the structures as globals.
33 */ 34 */
34 35
35#include <global.h> 36#include <global.h>
36#include <sproto.h> 37#include <sproto.h>
38
39#include "crc.h"
37 40
38#define MAX_FACE_SETS 20 /**< Maximum number of image sets the program will handle */ 41#define MAX_FACE_SETS 20 /**< Maximum number of image sets the program will handle */
39 42
40/** Information about one image */ 43/** Information about one image */
41typedef struct FaceInfo 44typedef struct FaceInfo
298 { 301 {
299 LOG (llevError, "read_client_images: Did not read desired amount of data, wanted %d, got %d\n%s", len, i, buf); 302 LOG (llevError, "read_client_images: Did not read desired amount of data, wanted %d, got %d\n%s", len, i, buf);
300 abort (); 303 abort ();
301 } 304 }
302 305
303 facesets[fileno].faces[num].checksum = 0; 306 crc32 chksum;
307
304 for (i = 0; i < len; i++) 308 for (i = 0; i < len; i++)
305 { 309 chksum (facesets[fileno].faces[num].data[i]);
306 ROTATE_RIGHT (facesets[fileno].faces[num].checksum); 310
307 facesets[fileno].faces[num].checksum += facesets[fileno].faces[num].data[i];
308 facesets[fileno].faces[num].checksum &= 0xffffffff; 311 facesets[fileno].faces[num].checksum = chksum;
309 }
310 } 312 }
311 313
312 close_and_delete (infile, compressed); 314 close_and_delete (infile, compressed);
313 } /* For fileno < MAX_FACE_SETS */ 315 } /* For fileno < MAX_FACE_SETS */
314} 316}
413void 415void
414send_image_info (client *ns, char *params) 416send_image_info (client *ns, char *params)
415{ 417{
416 packet sl; 418 packet sl;
417 419
418 sl.printf ("replyinfo image_info\n%d\n%d\n", nrofpixmaps - 1, bmaps_checksum); 420 sl.printf ("replyinfo image_info\n%d\n%u\n", nrofpixmaps - 1, (unsigned int)bmaps_checksum);
419 421
420 for (int i = 0; i < MAX_FACE_SETS; i++) 422 for (int i = 0; i < MAX_FACE_SETS; i++)
421 if (facesets[i].prefix) 423 if (facesets[i].prefix)
422 sl.printf ("%d:%s:%s:%d:%s:%s:%s", i, 424 sl.printf ("%d:%s:%s:%d:%s:%s:%s", i,
423 facesets[i].prefix, facesets[i].fullname , facesets[i].fallback, 425 facesets[i].prefix, facesets[i].fullname , facesets[i].fallback,

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines