From fea297b2ac430a6e4d32a9842d8904a04989d495 Mon Sep 17 00:00:00 2001 From: Cracker64 Date: Mon, 31 Jan 2011 22:53:32 -0500 Subject: [PATCH] Update with simon, and drawing SPRK on walls crash fix. --- includes/defines.h | 4 ++-- src/interface.c | 10 +++++++++- src/powder.c | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/includes/defines.h b/includes/defines.h index c22180f1d..95302fad4 100644 --- a/includes/defines.h +++ b/includes/defines.h @@ -7,8 +7,8 @@ #define PATH_SEP "/" #endif -#define SAVE_VERSION 45 -#define MINOR_VERSION 2 +#define SAVE_VERSION 46 +#define MINOR_VERSION 0 #define IDENT_VERSION "G" //Change this if you're not Simon! It should be a single letter. //#define BETA diff --git a/src/interface.c b/src/interface.c index 112fef437..5940e6ead 100644 --- a/src/interface.c +++ b/src/interface.c @@ -867,11 +867,19 @@ void login_ui(pixel *vid_buf) if (res && !strncmp(res, "OK ", 3)) { char *s_id,*u_e,*nres; + printf("\n{%s}\n", res); s_id = strchr(res+3, ' '); + if (!s_id) + goto fail; *(s_id++) = 0; u_e = strchr(s_id, ' '); - *(u_e++) = 0; + if (!u_e){ + u_e = malloc(1); + memset(u_e, 0, 1); + } + else + *(u_e++) = 0; strcpy(svf_user_id, res+3); strcpy(svf_session_id, s_id); diff --git a/src/powder.c b/src/powder.c index b2932d151..6cafdb651 100644 --- a/src/powder.c +++ b/src/powder.c @@ -577,7 +577,7 @@ inline int create_part(int p, int x, int y, int t) if (t==PT_SPRK) { - if (!((pmap[y][x]&0xFF)==PT_INST||(ptypes[pmap[y][x]&0xFF].properties&PROP_CONDUCTS))) + if ((pmap[y][x]>>8)>=NPART || !((pmap[y][x]&0xFF)==PT_INST||(ptypes[pmap[y][x]&0xFF].properties&PROP_CONDUCTS))) return -1; if (parts[pmap[y][x]>>8].life!=0) return -1;