summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon <simon@hardwired.org.uk>2010-09-11 10:57:20 (GMT)
committer Simon <simon@hardwired.org.uk>2010-09-11 10:57:20 (GMT)
commit42ec12d02f99bba736b8743ab8b78b2acc98d63d (patch)
treee2dd769467af781e63f79481fc8c33a5447edeae
parentd640bd26d8b7f5b53f0f685e53ce5181f349fad4 (diff)
parent863be4ae58f0a2283d9acf448868ea02dd597963 (diff)
downloadpowder-42ec12d02f99bba736b8743ab8b78b2acc98d63d.zip
powder-42ec12d02f99bba736b8743ab8b78b2acc98d63d.tar.gz
Merge branch 'master' of github.com:FacialTurd/The-Powder-Toy
-rwxr-xr-xMakefile6
-rw-r--r--graphics.c51
2 files changed, 54 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 72e2617..233d493 100755
--- a/Makefile
+++ b/Makefile
@@ -3,9 +3,9 @@ SOURCES := *.c
CFLAGS := -Wall -std=c99 -D_POSIX_C_SOURCE=200112L
OFLAGS := -O3 -ffast-math -ftree-vectorize -funsafe-math-optimizations
LFLAGS := -lSDL -lm -lbz2
-MFLAGS_SSE3 := -march=k8 -DX86 -DX86_SSE3 -msse3
-MFLAGS_SSE2 := -march=k8 -DX86 -DX86_SSE2 -msse2
-MFLAGS_SSE := -march=pentium3 -DX86 -DX86_SSE
+MFLAGS_SSE3 := -march=native -DX86 -DX86_SSE3 -msse3
+MFLAGS_SSE2 := -march=native-DX86 -DX86_SSE2 -msse2
+MFLAGS_SSE := -march=native -DX86 -DX86_SSE
FLAGS_DBUG := -Wall -std=c99 -D_POSIX_C_SOURCE=200112L -pg -O2 -march=k8 -DX86 -DX86_SSE3 -msse3 -lSDL -lm -lbz2
COMPILER := gcc
LINUX_TARG := powder-64-sse2 powder-sse powder-sse2
diff --git a/graphics.c b/graphics.c
index 8962698..eeb0d50 100644
--- a/graphics.c
+++ b/graphics.c
@@ -967,6 +967,15 @@ inline void blendpixel(pixel *vid, int x, int y, int r, int g, int b, int a)
#endif
{
#ifdef OpenGL
+ if(x<0 || y<0 || x>=XRES || r>=YRES)
+ return;
+ if(a!=255)
+ {
+ glBegin (GL_QUADS);
+ glColor4ub(r,g,b,a);
+ glVertex2i(x, y);
+ }
+ vid[y*(XRES+BARSIZE)+x] = PIXRGB(r,g,b);
#else
pixel t;
if(x<0 || y<0 || x>=XRES || y>=YRES)
@@ -1167,6 +1176,48 @@ void draw_parts(pixel *vid)
float pt = R_TEMP;
for(i = 0; i<NPART; i++) {
#ifdef OpenGL
+ if(cmode == 6) //If fire mode
+ {
+
+ if(t==PT_MWAX)
+ {
+ for(x=-1; x<=1; x++)
+ {
+ for(y=-1; y<=1; y++)
+ {
+ if ((abs(x) == 0) && (abs(y) == 0))
+ blendpixel(vid,x+nx,y+ny,224,224,170,255);
+ else if (abs(y) != 0 && abs(x) != 0)
+ blendpixel(vid,x+nx,y+ny,224,224,170,20);
+ else
+ blendpixel(vid,x+nx,y+ny,224,224,170,40);
+ }
+ }
+
+ }
+
+ else if(t==PT_PLUT)
+ {
+ int tempx;
+ int tempy;
+ cr = 0x40;
+ cg = 0x70;
+ cb = 0x20;
+ blendpixel(vid, nx, ny, cr, cg, cb, 192);
+ blendpixel(vid, nx+1, ny, cr, cg, cb, 96);
+ blendpixel(vid, nx-1, ny, cr, cg, cb, 96);
+ blendpixel(vid, nx, ny+1, cr, cg, cb, 96);
+ blendpixel(vid, nx, ny-1, cr, cg, cb, 96);
+ for(tempx = 2; tempx < 10; tempx++) {
+ for(tempy = 2; tempy < 10; tempy++) {
+ blendpixel(vid, nx+tempx, ny-tempy, cr, cg, cb, 5);
+ blendpixel(vid, nx-tempx, ny+tempy, cr, cg, cb, 5);
+ blendpixel(vid, nx+tempx, ny+tempy, cr, cg, cb, 5);
+ blendpixel(vid, nx-tempx, ny-tempy, cr, cg, cb, 5);
+ }
+ }
+ }
+ }
if(parts[i].type) {
//Do nothing
t = parts[i].type;