From b54c0b693407b15042b7311c38ac45a19e4b3a63 Mon Sep 17 00:00:00 2001 From: Simon Date: Sat, 4 Dec 2010 22:17:01 +0000 Subject: [PATCH] Particle life now saved as 16bit integer, increases limit and fixes saving of wire and other elements. Version 44 to reflect save format change --- includes/defines.h | 2 +- src/main.c | 34 ++++++++++++++++++++++++++-------- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/includes/defines.h b/includes/defines.h index dad3bef8b..11b9a5338 100644 --- a/includes/defines.h +++ b/includes/defines.h @@ -7,7 +7,7 @@ #define PATH_SEP "/" #endif -#define SAVE_VERSION 43 +#define SAVE_VERSION 44 #define MINOR_VERSION 1 #define IDENT_VERSION "G" //Change this if you're not Simon! It should be a single letter. #define BETA diff --git a/src/main.c b/src/main.c index 9260abf30..d548a45dc 100644 --- a/src/main.c +++ b/src/main.c @@ -303,8 +303,13 @@ void *build_save(int *size, int x0, int y0, int w, int h) for(j=0; j>8); + d[p++] = (ttlife&0x00FF); + } } for(j=0; j= size) - goto corrupt; - if(i <= NPART) - parts[i-1].life = d[p++]*4; - else - p++; + if(ver>=44){ + if(p >= size) { + goto corrupt; + } + if(i <= NPART) { + ttv = (d[p++])<<8; + ttv |= (d[p++]); + parts[i-1].life = ttv; + } else { + p+=2; + } + } else { + if(p >= size) + goto corrupt; + if(i <= NPART) + parts[i-1].life = d[p++]*4; + else + p++; + } } } for(j=0; j