Skip to content

Commit 00bdebb

Browse files
author
Marek
committed
Modified packet offset computation
1 parent fc7cc10 commit 00bdebb

File tree

4 files changed

+196
-193
lines changed

4 files changed

+196
-193
lines changed

data.c

+17-18
Original file line numberDiff line numberDiff line change
@@ -370,40 +370,39 @@ void delete_obj(unsigned long id)
370370
mem_free(q);
371371
}
372372

373-
void put_long_long(char *p,unsigned long_long num)
373+
void put_long_long(char *p,unsigned long_long num, int *offset)
374374
{
375-
p[0]=num&255;num>>=8;
376-
p[1]=num&255;num>>=8;
377-
p[2]=num&255;num>>=8;
378-
p[3]=num&255;num>>=8;
379-
p[4]=num&255;num>>=8;
380-
p[5]=num&255;num>>=8;
381-
p[6]=num&255;num>>=8;
382-
p[7]=num&255;
375+
p[(*offset)++]=(char)(num & 0xff);num>>=8;
376+
p[(*offset)++]=(char)(num & 0xff);num>>=8;
377+
p[(*offset)++]=(char)(num & 0xff);num>>=8;
378+
p[(*offset)++]=(char)(num & 0xff);num>>=8;
379+
p[(*offset)++]=(char)(num & 0xff);num>>=8;
380+
p[(*offset)++]=(char)(num & 0xff);num>>=8;
381+
p[(*offset)++]=(char)(num & 0xff);num>>=8;
382+
p[(*offset)++]=(char)(num & 0xff);
383383
}
384384

385385

386-
void put_int(char *p,int num)
386+
void put_int(char *p,int num, int *offset)
387387
{
388-
p[0]=num & 0xff;
389-
p[1]=(num>>8) & 0xff;
390-
p[2]=(num>>16) & 0xff;
391-
p[3]=(num>>24) & 0xff;
388+
p[(*offset)++]=(char)(num & 0xff);num>>=8;
389+
p[(*offset)++]=(char)(num & 0xff);num>>=8;
390+
p[(*offset)++]=(char)(num & 0xff);num>>=8;
391+
p[(*offset)++]=(char)(num & 0xff);
392392
}
393393

394394

395395
int get_int(char *p)
396396
{
397397
return ((p[0]&0xff) | ((p[1]&0xff)<<8) |
398398
((p[2]&0xff)<<16) | ((p[3]&0xff)<<24));
399-
400399
}
401400

402401

403-
void put_int16(char *p, short num)
402+
void put_int16(char *p, short num, int *offset)
404403
{
405-
p[0]=num & 0xff;
406-
p[1]=(num>>8) & 0xff;
404+
p[(*offset)++]=(char)(num & 0xff);num>>=8;
405+
p[(*offset)++]=(char)(num & 0xff);
407406
}
408407

409408

data.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -224,11 +224,11 @@ extern struct it* new_obj(
224224
int yspeed,
225225
void * data);
226226
void delete_obj(unsigned long id);
227-
extern void put_int(char *p,int num);
227+
extern void put_int(char *p,int num, int *offset);
228228
extern int get_int(char *p);
229-
extern void put_int16(char *p,short num);
229+
extern void put_int16(char *p,short num, int *offset);
230230
extern int get_int16(char *p);
231-
extern void put_long_long(char *p,unsigned long_long num);
231+
extern void put_long_long(char *p,unsigned long_long num, int *offset);
232232
extern unsigned long_long get_long_long(char *p);
233233
extern void free_sprites(int);
234234

net.c

+12-12
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,20 @@ void send_packet(char *packet,int len,const struct sockaddr* addr,int sender,int
4040
}
4141
if (!p)return; /* not enough memory */
4242
memcpy(p+12,packet,len);
43-
p[0]=crc&255;crc>>=8; /* CRC 32 */
44-
p[1]=crc&255;crc>>=8;
45-
p[2]=crc&255;crc>>=8;
46-
p[3]=crc&255;
43+
p[0]=(char)(crc & 0xff);crc>>=8; /* CRC 32 */
44+
p[1]=(char)(crc & 0xff);crc>>=8;
45+
p[2]=(char)(crc & 0xff);crc>>=8;
46+
p[3]=(char)(crc & 0xff);
4747

48-
p[4]=sender&255;sender>>=8; /* sender */
49-
p[5]=sender&255;sender>>=8;
50-
p[6]=sender&255;sender>>=8;
51-
p[7]=sender&255;
48+
p[4]=(char)(sender & 0xff);sender>>=8; /* sender */
49+
p[5]=(char)(sender & 0xff);sender>>=8;
50+
p[6]=(char)(sender & 0xff);sender>>=8;
51+
p[7]=(char)(sender & 0xff);
5252

53-
p[8]=recipient&255;recipient>>=8; /* recipient */
54-
p[9]=recipient&255;recipient>>=8;
55-
p[10]=recipient&255;recipient>>=8;
56-
p[11]=recipient&255;
53+
p[8]=(char)(recipient & 0xff);recipient>>=8; /* recipient */
54+
p[9]=(char)(recipient & 0xff);recipient>>=8;
55+
p[10]=(char)(recipient & 0xff);recipient>>=8;
56+
p[11]=(char)(recipient & 0xff);
5757

5858
sendto(fd,p,len+12,0,addr,sizeof(*addr));
5959
}

0 commit comments

Comments
 (0)