summaryrefslogtreecommitdiff
path: root/src/graphics.c
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2011-07-09 17:22:25 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2011-07-09 17:22:25 (GMT)
commitd42e06f37a93475a09cd2908849b2f33a50513ac (patch)
tree3bb435ec3648d897a821cf99ff2469277da51791 /src/graphics.c
parentd2eb6f1cb31f2d746d5897e775424ed0d1448703 (diff)
downloadpowder-d42e06f37a93475a09cd2908849b2f33a50513ac.zip
powder-d42e06f37a93475a09cd2908849b2f33a50513ac.tar.gz
Merge all GOL types into PT_LIFE, behaviour is determined by ctype
Diffstat (limited to 'src/graphics.c')
-rw-r--r--src/graphics.c114
1 files changed, 71 insertions, 43 deletions
diff --git a/src/graphics.c b/src/graphics.c
index 193af98..dc00b17 100644
--- a/src/graphics.c
+++ b/src/graphics.c
@@ -709,7 +709,31 @@ int draw_tool_xy(pixel *vid_buf, int x, int y, int b, unsigned pc)
pixel gc;
if (x > XRES-26 || x < 0)
return 26;
- if (b>=UI_WALLSTART)
+ if ((b&0xFF) == PT_LIFE)
+ {
+#ifdef OpenGL
+ fillrect(vid_buf, x, y, 28, 16, PIXR(pc), PIXG(pc), PIXB(pc), 255);
+#else
+ for (j=1; j<15; j++)
+ {
+ for (i=1; i<27; i++)
+ {
+ vid_buf[(XRES+BARSIZE)*(y+j)+(x+i)] = pc;
+ }
+ }
+#endif
+ c = PIXB(pc) + 3*PIXG(pc) + 2*PIXR(pc);
+ if (c<544)
+ {
+ c = 255;
+ }
+ else
+ {
+ c = 0;
+ }
+ drawtext(vid_buf, x+14-textwidth((char *)gmenu[(b>>8)&0xFF].name)/2, y+4, (char *)gmenu[(b>>8)&0xFF].name, c, c, c, 255);
+ }
+ else if (b>=UI_WALLSTART)
{
int ds = 0;
if (b-UI_WALLSTART>=0 && b-UI_WALLSTART<UI_WALLCOUNT)
@@ -2042,48 +2066,52 @@ void draw_parts(pixel *vid)
blendpixel(vid, nx, ny, cr, cg, cb, 255);
}
- else if (t==PT_LOTE)//colors for life states
- {
- if (parts[i].tmp==2)
- blendpixel(vid, nx, ny, 255, 128, 0, 255);
- else if (parts[i].tmp==1)
- blendpixel(vid, nx, ny, 255, 255, 0, 255);
- else
- blendpixel(vid, nx, ny, 255, 0, 0, 255);
- }
- else if (t==PT_FRG2)//colors for life states
- {
- if (parts[i].tmp==2)
- blendpixel(vid, nx, ny, 0, 100, 50, 255);
- else
- blendpixel(vid, nx, ny, 0, 255, 90, 255);
- }
- else if (t==PT_STAR)//colors for life states
- {
- if (parts[i].tmp==4)
- blendpixel(vid, nx, ny, 0, 0, 128, 255);
- else if (parts[i].tmp==3)
- blendpixel(vid, nx, ny, 0, 0, 150, 255);
- else if (parts[i].tmp==2)
- blendpixel(vid, nx, ny, 0, 0, 190, 255);
- else if (parts[i].tmp==1)
- blendpixel(vid, nx, ny, 0, 0, 230, 255);
- else
- blendpixel(vid, nx, ny, 0, 0, 70, 255);
- }
- else if (t==PT_FROG)//colors for life states
- {
- if (parts[i].tmp==2)
- blendpixel(vid, nx, ny, 0, 100, 0, 255);
- else
- blendpixel(vid, nx, ny, 0, 255, 0, 255);
- }
- else if (t==PT_BRAN)//colors for life states
- {
- if (parts[i].tmp==1)
- blendpixel(vid, nx, ny, 150, 150, 0, 255);
- else
- blendpixel(vid, nx, ny, 255, 255, 0, 255);
+ if(t==PT_LIFE && parts[i].ctype < NGOLALT){
+ if (parts[i].ctype==NGT_LOTE)//colors for life states
+ {
+ if (parts[i].tmp==2)
+ blendpixel(vid, nx, ny, 255, 128, 0, 255);
+ else if (parts[i].tmp==1)
+ blendpixel(vid, nx, ny, 255, 255, 0, 255);
+ else
+ blendpixel(vid, nx, ny, 255, 0, 0, 255);
+ }
+ else if (parts[i].ctype==NGT_FRG2)//colors for life states
+ {
+ if (parts[i].tmp==2)
+ blendpixel(vid, nx, ny, 0, 100, 50, 255);
+ else
+ blendpixel(vid, nx, ny, 0, 255, 90, 255);
+ }
+ else if (parts[i].ctype==NGT_STAR)//colors for life states
+ {
+ if (parts[i].tmp==4)
+ blendpixel(vid, nx, ny, 0, 0, 128, 255);
+ else if (parts[i].tmp==3)
+ blendpixel(vid, nx, ny, 0, 0, 150, 255);
+ else if (parts[i].tmp==2)
+ blendpixel(vid, nx, ny, 0, 0, 190, 255);
+ else if (parts[i].tmp==1)
+ blendpixel(vid, nx, ny, 0, 0, 230, 255);
+ else
+ blendpixel(vid, nx, ny, 0, 0, 70, 255);
+ }
+ else if (parts[i].ctype==NGT_FROG)//colors for life states
+ {
+ if (parts[i].tmp==2)
+ blendpixel(vid, nx, ny, 0, 100, 0, 255);
+ else
+ blendpixel(vid, nx, ny, 0, 255, 0, 255);
+ }
+ else if (parts[i].ctype==NGT_BRAN)//colors for life states
+ {
+ if (parts[i].tmp==1)
+ blendpixel(vid, nx, ny, 150, 150, 0, 255);
+ else
+ blendpixel(vid, nx, ny, 255, 255, 0, 255);
+ } else {
+ blendpixel(vid, nx, ny, PIXR(gmenu[parts[i].ctype].colour), PIXG(gmenu[parts[i].ctype].colour), PIXB(gmenu[parts[i].ctype].colour), 255);
+ }
}
else if (t==PT_DEUT)
{