summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon <simon@hardwired.org.uk>2010-12-19 14:20:38 (GMT)
committer Simon <simon@hardwired.org.uk>2010-12-19 14:20:38 (GMT)
commit92d22ac59060800461d23714b2db1a75f7619d2b (patch)
tree1eb6579fe7dda5228308f7941a1c1fa4af55fddc /src
parent9c805f864315665a6d7fd5d6c5b319c669f25988 (diff)
downloadpowder-92d22ac59060800461d23714b2db1a75f7619d2b.zip
powder-92d22ac59060800461d23714b2db1a75f7619d2b.tar.gz
Nibble is a noob, also fix for persistent mode bug
Diffstat (limited to 'src')
-rw-r--r--src/graphics.c18
-rw-r--r--src/main.c9
2 files changed, 23 insertions, 4 deletions
diff --git a/src/graphics.c b/src/graphics.c
index 82fc7ae..013d875 100644
--- a/src/graphics.c
+++ b/src/graphics.c
@@ -2749,6 +2749,24 @@ void dim_copy(pixel *dst, pixel *src)
}
}
+void dim_copy_pers(pixel *dst, pixel *src)
+{
+ int i,r,g,b;
+ for(i=0; i<(XRES+BARSIZE)*YRES; i++)
+ {
+ r = PIXR(src[i]);
+ g = PIXG(src[i]);
+ b = PIXB(src[i]);
+ if(r>0)
+ r--;
+ if(g>0)
+ g--;
+ if(b>0)
+ b--;
+ dst[i] = PIXRGB(r,g,b);
+ }
+}
+
void render_zoom(pixel *img)
{
int x, y, i, j;
diff --git a/src/main.c b/src/main.c
index e0fce50..fab0284 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1072,6 +1072,7 @@ int main(int argc, char *argv[])
int pastFPS = 0;
int past = 0;
pixel *vid_buf=calloc((XRES+BARSIZE)*(YRES+MENUSIZE), PIXELSIZE);
+ pixel *pers_bg=calloc((XRES+BARSIZE)*YRES, PIXELSIZE);
void *http_ver_check;
char *ver_data=NULL, *tmp;
int i, j, bq, fire_fc=0, do_check=0, old_version=0, http_ret=0, major, minor, old_ver_len;
@@ -1217,8 +1218,8 @@ int main(int argc, char *argv[])
}
else if(cmode==CM_PERS)
{
- memcpy(vid_buf, fire_bg, XRES*YRES*PIXELSIZE);
- memset(vid_buf+(XRES*YRES), 0, ((XRES+BARSIZE)*YRES*PIXELSIZE)-(XRES*YRES*PIXELSIZE));
+ memcpy(vid_buf, pers_bg, (XRES+BARSIZE)*YRES*PIXELSIZE);
+ memset(vid_buf+((XRES+BARSIZE)*YRES), 0, ((XRES+BARSIZE)*YRES*PIXELSIZE)-((XRES+BARSIZE)*YRES*PIXELSIZE));
}
else
{
@@ -1243,11 +1244,11 @@ int main(int argc, char *argv[])
{
if(!fire_fc)
{
- dim_copy(fire_bg, vid_buf);
+ dim_copy_pers(pers_bg, vid_buf);
}
else
{
- memcpy(fire_bg, vid_buf, XRES*YRES*PIXELSIZE);
+ memcpy(pers_bg, vid_buf, (XRES+BARSIZE)*YRES*PIXELSIZE);
}
fire_fc = (fire_fc+1) % 3;
}