ref: 2a6077848c4d30e8d04091a3497538ea896f2b8b
dir: /netclient.c/
#include "engine.h"
#includde "netclient.h"
int sockfd;
static char*
dirtostr(int dir)
{
switch(dir)
{
case NE:
return "NE";
case E:
return "E";
case SE:
return "SE";
case SW:
return "SW";
case W:
return "W";
case NW:
return "NW";
default:
return nil;
}
}
static char*
movemsg(int dir)
{
char *d, *msg;
d = dirtostr(dir);
if(d != nil)
{
msg = malloc(8);
snprint(msg, "s %s\n", d);
return msg;
}
else
return nil;
}
static char*
putmsg(int x, int y)
{
char *d, *msg;
msg = malloc(10);
snprint(msg, "p %2d %2d\n", itoa(x), itoa(y));
return msg;
}
void
netmove(int dir)
{
int len;
char *msg;
msg = movemsg(dir);
if(msg != nil)
{
len = strlen(msg);
if(write(sockfd, msg, len) < len)
sysfatal("netmove(): half written?");
}
else
sysfatal("netmove(): invalid dir?");
}
void
netput(int x, int y)
{
int len;
char *msg;
msg = putmsg(x, y);
len = strlen(msg);
if(write(sockfd, msg, len) < len)
sysfatal("half written?: %r");
free(msg);
}