summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-06-17 21:34:17 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-06-17 21:34:17 (GMT)
commit4b073de82a77db344b728434ee9ed18f69a06b4e (patch)
tree17a4f27f3c8f12a10f12d79442bb76e18e7f40ed /src
parent36de2f19f57ff056166ae268404f1f3851ea3077 (diff)
downloadpowder-4b073de82a77db344b728434ee9ed18f69a06b4e.zip
powder-4b073de82a77db344b728434ee9ed18f69a06b4e.tar.gz
Revert "Moved soap and stick men graphics things to special functions."
This reverts commit 7f5408f196002476c4765f1cae833e1441e4b276. Conflicts: includes/powder.h
Diffstat (limited to 'src')
-rw-r--r--src/elementdata.c2
-rw-r--r--src/elements/figh.c4
-rw-r--r--src/elements/newgraphics.c145
-rw-r--r--src/elements/pipe.c4
-rw-r--r--src/elements/stkm.c6
-rw-r--r--src/elements/stkm2.c4
-rw-r--r--src/graphics.c132
7 files changed, 140 insertions, 157 deletions
diff --git a/src/elementdata.c b/src/elementdata.c
index 232d157..926bc23 100644
--- a/src/elementdata.c
+++ b/src/elementdata.c
@@ -180,7 +180,7 @@ part_type ptypes[PT_NUM] =
/*FREE*/{"BRAN", PIXPACK(0xCCCC00), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 0, 0, 0, 100, SC_LIFE, 9000.0f, 40, "Brian 6 S6/B246/3", ST_NONE, TYPE_SOLID|PROP_LIFE, NULL, NULL},
/*FREE*/{"WIND", PIXPACK(0x101010), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 0, 0, 0, 100, SC_SPECIAL, 0.0f, 40, "", ST_NONE, ST_NONE, NULL, NULL},
{"HYGN", PIXPACK(0x5070FF), 2.0f, 0.00f * CFDS, 0.99f, 0.30f, -0.10f, 0.00f, 3.00f, 0.000f * CFDS, 0, 0, 0, 0, 0, 1, 1, 1, SC_GAS, R_TEMP+0.0f +273.15f, 251, "Combines with O2 to make WATR", ST_GAS, TYPE_GAS, &update_H2, NULL},
- {"SOAP", PIXPACK(0xF5F5DC), 0.6f, 0.01f * CFDS, 0.98f, 0.95f, 0.0f, 0.1f, 0.00f, 0.000f * CFDS, 2, 0, 0, 0, 20, 1, 1, 35, SC_LIQUID, R_TEMP-2.0f +273.15f, 29, "Soap. Creates bubbles.", ST_LIQUID, TYPE_LIQUID|PROP_NEUTPENETRATE|PROP_LIFE_DEC, &update_SOAP, &graphics_SOAP},
+ {"SOAP", PIXPACK(0xF5F5DC), 0.6f, 0.01f * CFDS, 0.98f, 0.95f, 0.0f, 0.1f, 0.00f, 0.000f * CFDS, 2, 0, 0, 0, 20, 1, 1, 35, SC_LIQUID, R_TEMP-2.0f +273.15f, 29, "Soap. Creates bubbles.", ST_LIQUID, TYPE_LIQUID|PROP_NEUTPENETRATE|PROP_LIFE_DEC, &update_SOAP, NULL},
{"BHOL", PIXPACK(0x202020), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 0, 1, 1, 100, SC_SPECIAL, R_TEMP+0.0f +273.15f, 186, "Black hole (Requires newtonian gravity)", ST_SOLID, TYPE_SOLID, &update_NBHL, NULL},
{"WHOL", PIXPACK(0xFFFFFF), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 0, 1, 1, 100, SC_SPECIAL, R_TEMP+0.0f +273.15f, 186, "White hole (Requires newtonian gravity)", ST_SOLID, TYPE_SOLID, &update_NWHL, NULL},
{"MERC", PIXPACK(0x736B6D), 0.4f, 0.04f * CFDS, 0.94f, 0.80f, 0.0f, 0.3f, 0.00f, 0.000f * CFDS, 2, 0, 0, 0, 20, 1, 1, 91, SC_ELEC, R_TEMP+0.0f +273.15f, 251, "Mercury. Volume changes with temperature, Conductive.", ST_LIQUID, TYPE_LIQUID|PROP_CONDUCTS|PROP_NEUTABSORB|PROP_LIFE_DEC, &update_MERC, NULL},
diff --git a/src/elements/figh.c b/src/elements/figh.c
index 1b2a5c5..ce00af7 100644
--- a/src/elements/figh.c
+++ b/src/elements/figh.c
@@ -107,6 +107,7 @@ int update_FIGH(UPDATE_FUNC_ARGS)
int graphics_FIGH(GRAPHICS_FUNC_ARGS)
{
playerst * cplayer = &fighters[(unsigned char)cpart->tmp];
+ *pixel_mode = PSPEC_STICKMAN;
if (cplayer->elem<PT_NUM)
{
*colr = PIXR(ptypes[cplayer->elem].pcolors);
@@ -117,6 +118,5 @@ int graphics_FIGH(GRAPHICS_FUNC_ARGS)
{
*colr = *colg = *colb = 255;
}
- graphics_stickmen(GRAPHICS_FUNC_SUBCALL_ARGS);
- return 0;
+ return 1;
}
diff --git a/src/elements/newgraphics.c b/src/elements/newgraphics.c
index 5679b63..946afc8 100644
--- a/src/elements/newgraphics.c
+++ b/src/elements/newgraphics.c
@@ -562,149 +562,4 @@ int graphics_COAL(GRAPHICS_FUNC_ARGS) //Both COAL and Broken Coal
}
return 0;
}
-int graphics_SOAP(GRAPHICS_FUNC_ARGS)
-{
- if (decorations_enable && cpart->dcolour)
- {
- int a = (cpart->dcolour>>24)&0xFF;
- *firer = *colr = (a*((cpart->dcolour>>16)&0xFF) + (255-a)**colr) >> 8;
- *fireg = *colg = (a*((cpart->dcolour>>8)&0xFF) + (255-a)**colg) >> 8;
- *fireb = *colb = (a*((cpart->dcolour)&0xFF) + (255-a)**colb) >> 8;
- }
- if ((cpart->ctype&7) == 7)
- draw_line(vid, nx, ny, (int)(parts[cpart->tmp].x+0.5f), (int)(parts[cpart->tmp].y+0.5f), *colr, *colg, *colb, XRES+BARSIZE);
- return 0;
-}
-int graphics_stickmen(GRAPHICS_FUNC_ARGS)
-{
- char buff[20]; //Buffer for HP
- int s;
- int legr, legg, legb;
- playerst *cplayer;
-
- *pixel_mode = 0;
- switch(cpart->type)
- {
- case PT_STKM:
- cplayer = &player;
- break;
- case PT_STKM2:
- cplayer = &player2;
- break;
- case PT_FIGH:
- cplayer = &fighters[(unsigned char)cpart->tmp];
- break;
- default:
- return 0;
- }
-
- if (mousex>(nx-3) && mousex<(nx+3) && mousey<(ny+3) && mousey>(ny-3)) //If mouse is in the head
- {
- sprintf(buff, "%3d", cpart->life); //Show HP
- drawtext(vid, mousex-8-2*(cpart->life<100)-2*(cpart->life<10), mousey-12, buff, 255, 255, 255, 255);
- }
-
- if (colour_mode!=COLOUR_HEAT)
- {
- if (cplayer->elem<PT_NUM)
- {
- colr = PIXR(ptypes[cplayer->elem].pcolors);
- colg = PIXG(ptypes[cplayer->elem].pcolors);
- colb = PIXB(ptypes[cplayer->elem].pcolors);
- }
- else
- {
- colr = 0x80;
- colg = 0x80;
- colb = 0xFF;
- }
- }
-#ifdef OGLR
- glColor4f(((float)colr)/255.0f, ((float)colg)/255.0f, ((float)colb)/255.0f, 1.0f);
- glBegin(GL_LINE_STRIP);
- if(t==PT_FIGH)
- {
- glVertex2f(fnx, fny+2);
- glVertex2f(fnx+2, fny);
- glVertex2f(fnx, fny-2);
- glVertex2f(fnx-2, fny);
- glVertex2f(fnx, fny+2);
- }
- else
- {
- glVertex2f(fnx-2, fny-2);
- glVertex2f(fnx+2, fny-2);
- glVertex2f(fnx+2, fny+2);
- glVertex2f(fnx-2, fny+2);
- glVertex2f(fnx-2, fny-2);
- }
- glEnd();
- glBegin(GL_LINES);
-
- if (colour_mode!=COLOUR_HEAT)
- {
- if (t==PT_STKM2)
- glColor4f(100.0f/255.0f, 100.0f/255.0f, 1.0f, 1.0f);
- else
- glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
- }
-
- glVertex2f(nx, ny+3);
- glVertex2f(cplayer->legs[0], cplayer->legs[1]);
- glVertex2f(cplayer->legs[0], cplayer->legs[1]);
- glVertex2f(cplayer->legs[4], cplayer->legs[5]);
-
- glVertex2f(nx, ny+3);
- glVertex2f(cplayer->legs[8], cplayer->legs[9]);
-
- glVertex2f(cplayer->legs[8], cplayer->legs[9]);
- glVertex2f(cplayer->legs[12], cplayer->legs[13]);
- glEnd();
-#else
- s = XRES+BARSIZE;
-
- if (cpart->type==PT_STKM2)
- {
- legr = 100;
- legg = 100;
- legb = 255;
- }
- else
- {
- legr = 255;
- legg = 255;
- legb = 255;
- }
-
- if (colour_mode==COLOUR_HEAT)
- {
- legr = colr;
- legg = colg;
- legb = colb;
- }
-
- //head
- if(cpart->type==PT_FIGH)
- {
- draw_line(vid , nx, ny+2, nx+2, ny, colr, colg, colb, s);
- draw_line(vid , nx+2, ny, nx, ny-2, colr, colg, colb, s);
- draw_line(vid , nx, ny-2, nx-2, ny, colr, colg, colb, s);
- draw_line(vid , nx-2, ny, nx, ny+2, colr, colg, colb, s);
- }
- else
- {
- draw_line(vid , nx-2, ny+2, nx+2, ny+2, colr, colg, colb, s);
- draw_line(vid , nx-2, ny-2, nx+2, ny-2, colr, colg, colb, s);
- draw_line(vid , nx-2, ny-2, nx-2, ny+2, colr, colg, colb, s);
- draw_line(vid , nx+2, ny-2, nx+2, ny+2, colr, colg, colb, s);
- }
- //legs
- draw_line(vid , nx, ny+3, cplayer->legs[0], cplayer->legs[1], legr, legg, legb, s);
- draw_line(vid , cplayer->legs[0], cplayer->legs[1], cplayer->legs[4], cplayer->legs[5], legr, legg, legb, s);
- draw_line(vid , nx, ny+3, cplayer->legs[8], cplayer->legs[9], legr, legg, legb, s);
- draw_line(vid , cplayer->legs[8], cplayer->legs[9], cplayer->legs[12], cplayer->legs[13], legr, legg, legb, s);
-#endif
-
- return 0;
-}
diff --git a/src/elements/pipe.c b/src/elements/pipe.c
index 9d7a4b1..aa6e16b 100644
--- a/src/elements/pipe.c
+++ b/src/elements/pipe.c
@@ -292,11 +292,11 @@ int graphics_PIPE(GRAPHICS_FUNC_ARGS)
*colb = PIXR(ptypes[t].pcolors);
if (ptypes[t].graphics_func)
{
- (*(ptypes[t].graphics_func))(&tpart, nx, ny, pixel_mode, cola, colr, colg, colb, firea, firer, fireg, fireb, vid);
+ (*(ptypes[t].graphics_func))(&tpart, nx, ny, pixel_mode, cola, colr, colg, colb, firea, firer, fireg, fireb);
}
else
{
- graphics_DEFAULT(&tpart, nx, ny, pixel_mode, cola, colr, colg, colb, firea, firer, fireg, fireb, vid);
+ graphics_DEFAULT(&tpart, nx, ny, pixel_mode, cola, colr, colg, colb, firea, firer, fireg, fireb);
}
}
//*colr = PIXR(ptypes[cpart->tmp&0xFF].pcolors);
diff --git a/src/elements/stkm.c b/src/elements/stkm.c
index 43182dc..d0bd14a 100644
--- a/src/elements/stkm.c
+++ b/src/elements/stkm.c
@@ -32,6 +32,7 @@ int update_STKM(UPDATE_FUNC_ARGS)
int graphics_STKM(GRAPHICS_FUNC_ARGS)
{
+ *pixel_mode = PSPEC_STICKMAN;
if ((int)player.elem<PT_NUM)
{
*colr = PIXR(ptypes[player.elem].pcolors);
@@ -42,8 +43,7 @@ int graphics_STKM(GRAPHICS_FUNC_ARGS)
{
*colr = *colg = *colb = 255;
}
- graphics_stickmen(GRAPHICS_FUNC_SUBCALL_ARGS);
- return 0;
+ return 1;
}
int run_stickman(playerst* playerp, UPDATE_FUNC_ARGS) {
@@ -57,7 +57,7 @@ int run_stickman(playerst* playerp, UPDATE_FUNC_ARGS) {
playerp->elem = parts[i].ctype;
playerp->frames++;
- //Temperature handling
+ //Tempirature handling
if (parts[i].temp<243)
parts[i].life -= 1;
if ((parts[i].temp<309.6f) && (parts[i].temp>=243))
diff --git a/src/elements/stkm2.c b/src/elements/stkm2.c
index 7386f75..61ef286 100644
--- a/src/elements/stkm2.c
+++ b/src/elements/stkm2.c
@@ -29,6 +29,7 @@ int update_STKM2(UPDATE_FUNC_ARGS) {
int graphics_STKM2(GRAPHICS_FUNC_ARGS)
{
+ *pixel_mode = PSPEC_STICKMAN;
if ((int)player2.elem<PT_NUM)
{
*colr = PIXR(ptypes[player2.elem].pcolors);
@@ -39,6 +40,5 @@ int graphics_STKM2(GRAPHICS_FUNC_ARGS)
{
*colr = *colg = *colb = 255;
}
- graphics_stickmen(GRAPHICS_FUNC_SUBCALL_ARGS);
- return 0;
+ return 1;
}
diff --git a/src/graphics.c b/src/graphics.c
index 20a6a39..765306b 100644
--- a/src/graphics.c
+++ b/src/graphics.c
@@ -1891,7 +1891,7 @@ void render_parts(pixel *vid)
if (ptypes[t].graphics_func)
{
#endif
- if ((*(ptypes[t].graphics_func))(&(parts[i]), nx, ny, &pixel_mode, &cola, &colr, &colg, &colb, &firea, &firer, &fireg, &fireb, vid)) //That's a lot of args, a struct might be better
+ if ((*(ptypes[t].graphics_func))(&(parts[i]), nx, ny, &pixel_mode, &cola, &colr, &colg, &colb, &firea, &firer, &fireg, &fireb)) //That's a lot of args, a struct might be better
{
graphicscache[t].isready = 1;
graphicscache[t].pixel_mode = pixel_mode;
@@ -1907,7 +1907,7 @@ void render_parts(pixel *vid)
}
else
{
- if(graphics_DEFAULT(&(parts[i]), nx, ny, &pixel_mode, &cola, &colr, &colg, &colb, &firea, &firer, &fireg, &fireb, vid))
+ if(graphics_DEFAULT(&(parts[i]), nx, ny, &pixel_mode, &cola, &colr, &colg, &colb, &firea, &firer, &fireg, &fireb))
{
graphicscache[t].isready = 1;
graphicscache[t].pixel_mode = pixel_mode;
@@ -2024,6 +2024,134 @@ void render_parts(pixel *vid)
#endif
//Pixel rendering
+ if (t==PT_SOAP)
+ {
+ if ((parts[i].ctype&7) == 7)
+ draw_line(vid, nx, ny, (int)(parts[parts[i].tmp].x+0.5f), (int)(parts[parts[i].tmp].y+0.5f), colr, colg, colb, XRES+BARSIZE);
+ }
+ if(pixel_mode & PSPEC_STICKMAN)
+ {
+ char buff[20]; //Buffer for HP
+ int s;
+ int legr, legg, legb;
+ playerst *cplayer;
+ if(t==PT_STKM)
+ cplayer = &player;
+ else if(t==PT_STKM2)
+ cplayer = &player2;
+ else if(t==PT_FIGH)
+ cplayer = &fighters[(unsigned char)parts[i].tmp];
+ else
+ continue;
+
+ if (mousex>(nx-3) && mousex<(nx+3) && mousey<(ny+3) && mousey>(ny-3)) //If mous is in the head
+ {
+ sprintf(buff, "%3d", parts[i].life); //Show HP
+ drawtext(vid, mousex-8-2*(parts[i].life<100)-2*(parts[i].life<10), mousey-12, buff, 255, 255, 255, 255);
+ }
+
+ if (colour_mode!=COLOUR_HEAT)
+ {
+ if (cplayer->elem<PT_NUM)
+ {
+ colr = PIXR(ptypes[cplayer->elem].pcolors);
+ colg = PIXG(ptypes[cplayer->elem].pcolors);
+ colb = PIXB(ptypes[cplayer->elem].pcolors);
+ }
+ else
+ {
+ colr = 0x80;
+ colg = 0x80;
+ colb = 0xFF;
+ }
+ }
+#ifdef OGLR
+ glColor4f(((float)colr)/255.0f, ((float)colg)/255.0f, ((float)colb)/255.0f, 1.0f);
+ glBegin(GL_LINE_STRIP);
+ if(t==PT_FIGH)
+ {
+ glVertex2f(fnx, fny+2);
+ glVertex2f(fnx+2, fny);
+ glVertex2f(fnx, fny-2);
+ glVertex2f(fnx-2, fny);
+ glVertex2f(fnx, fny+2);
+ }
+ else
+ {
+ glVertex2f(fnx-2, fny-2);
+ glVertex2f(fnx+2, fny-2);
+ glVertex2f(fnx+2, fny+2);
+ glVertex2f(fnx-2, fny+2);
+ glVertex2f(fnx-2, fny-2);
+ }
+ glEnd();
+ glBegin(GL_LINES);
+
+ if (colour_mode!=COLOUR_HEAT)
+ {
+ if (t==PT_STKM2)
+ glColor4f(100.0f/255.0f, 100.0f/255.0f, 1.0f, 1.0f);
+ else
+ glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
+ }
+
+ glVertex2f(nx, ny+3);
+ glVertex2f(cplayer->legs[0], cplayer->legs[1]);
+
+ glVertex2f(cplayer->legs[0], cplayer->legs[1]);
+ glVertex2f(cplayer->legs[4], cplayer->legs[5]);
+
+ glVertex2f(nx, ny+3);
+ glVertex2f(cplayer->legs[8], cplayer->legs[9]);
+
+ glVertex2f(cplayer->legs[8], cplayer->legs[9]);
+ glVertex2f(cplayer->legs[12], cplayer->legs[13]);
+ glEnd();
+#else
+ s = XRES+BARSIZE;
+
+ if (t==PT_STKM2)
+ {
+ legr = 100;
+ legg = 100;
+ legb = 255;
+ }
+ else
+ {
+ legr = 255;
+ legg = 255;
+ legb = 255;
+ }
+
+ if (colour_mode==COLOUR_HEAT)
+ {
+ legr = colr;
+ legg = colg;
+ legb = colb;
+ }
+
+ //head
+ if(t==PT_FIGH)
+ {
+ draw_line(vid , nx, ny+2, nx+2, ny, colr, colg, colb, s);
+ draw_line(vid , nx+2, ny, nx, ny-2, colr, colg, colb, s);
+ draw_line(vid , nx, ny-2, nx-2, ny, colr, colg, colb, s);
+ draw_line(vid , nx-2, ny, nx, ny+2, colr, colg, colb, s);
+ }
+ else
+ {
+ draw_line(vid , nx-2, ny+2, nx+2, ny+2, colr, colg, colb, s);
+ draw_line(vid , nx-2, ny-2, nx+2, ny-2, colr, colg, colb, s);
+ draw_line(vid , nx-2, ny-2, nx-2, ny+2, colr, colg, colb, s);
+ draw_line(vid , nx+2, ny-2, nx+2, ny+2, colr, colg, colb, s);
+ }
+ //legs
+ draw_line(vid , nx, ny+3, cplayer->legs[0], cplayer->legs[1], legr, legg, legb, s);
+ draw_line(vid , cplayer->legs[0], cplayer->legs[1], cplayer->legs[4], cplayer->legs[5], legr, legg, legb, s);
+ draw_line(vid , nx, ny+3, cplayer->legs[8], cplayer->legs[9], legr, legg, legb, s);
+ draw_line(vid , cplayer->legs[8], cplayer->legs[9], cplayer->legs[12], cplayer->legs[13], legr, legg, legb, s);
+#endif
+ }
#ifdef OGLR
if((display_mode & DISPLAY_EFFE) && (fabs(fnx-flx)>1.5f || fabs(fny-fly)>1.5f))
{