From 67531c24349c479cd9e765a02050aa8b15dbb439 Mon Sep 17 00:00:00 2001 From: Simon Date: Tue, 12 Apr 2011 12:19:21 +0100 Subject: [PATCH] Game save renderer --- Makefile | 16 ++++++++- includes/defines.h | 8 ++++- src/main.c | 81 ++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 101 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index b0d8c011f..e06a7d14f 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,18 @@ COMPILER := gcc LINUX_TARG := powder-64-sse2 powder-sse powder-sse2 WIN32_TARG := powder-sse.exe powder-sse2.exe +render: $(SOURCES) + $(PYCOMMAND) + $(COMPILER) -m32 -o$@ $(CFLAGS) $(OFLAGS) $(LFLAGS) $(MFLAGS_SSE3) $(SOURCES) -DLIN32 -DRENDERER + strip $@ + mv $@ build + +render-x: $(SOURCES) + $(PYCOMMAND) + $(COMPILER) -o $@ $(CFLAGS) $(OFLAGS) $(LFLAGS_X) -lSDL $(MFLAGS) $(SOURCES) -framework Cocoa -DMACOSX -DRENDERER -arch x86_64 + strip $@ + mv $@ build + powder: $(SOURCES) $(PYCOMMAND) $(COMPILER) -DINTERNAL -o$@ $(CFLAGS) $(OFLAGS) $(MFLAGS_SSE3) $(SOURCES) $(LFLAGS) -DLIN64 @@ -31,6 +43,7 @@ powder-debug: $(SOURCES) $(PYCOMMAND) $(COMPILER) -DINTERNAL -o$@ $(CFLAGS) $(OFLAGS) $(MFLAGS_SSE3) $(SOURCES) $(LFLAGS) -DLIN64 $(FLAGS_DBUG) mv $@ build + powder-sse3: $(SOURCES) $(PYCOMMAND) $(COMPILER) -m32 -o$@ $(CFLAGS) $(OFLAGS) $(MFLAGS_SSE3) $(SOURCES) $(LFLAGS) -DLIN32 @@ -46,6 +59,7 @@ powder-sse: $(SOURCES) $(COMPILER) -m32 -o$@ $(CFLAGS) $(OFLAGS) $(MFLAGS_SSE) $(SOURCES) $(LFLAGS) -DLIN32 strip $@ mv $@ build + powder-64-sse3-opengl: $(SOURCES) $(PYCOMMAND) $(COMPILER) -m64 -o$@ $(CFLAGS) $(OFLAGS) $(MFLAGS_SSE3) $(SOURCES) $(LFLAGS) -DLIN64 -lGL -lGLU -DOpenGL @@ -67,7 +81,6 @@ powder-icc: $(SOURCES) powder-res.o: powder-res.rc powder.ico i586-mingw32msvc-windres powder-res.rc powder-res.o - powder-sse3.exe: $(SOURCES) powder-res.o $(PYCOMMAND) i586-mingw32msvc-gcc -o$@ $(CFLAGS) $(OFLAGS) $(MFLAGS_SSE3) $(SOURCES) powder-res.o -lmingw32 -llibregex -lws2_32 -lSDLmain $(LFLAGS) -mwindows -DWIN32 @@ -86,6 +99,7 @@ powder-sse.exe: $(SOURCES) powder-res.o strip $@ chmod 0644 $@ mv $@ build + powder-x: $(SOURCES) $(PYCOMMAND) --64bit gcc -o $@ $(CFLAGS) $(OFLAGS) $(LFLAGS_X) $(MFLAGS) $(SOURCES) -DMACOSX -DPIX32BGRA -arch x86_64 -framework Cocoa -framework SDL -framework Python diff --git a/includes/defines.h b/includes/defines.h index 5bffea739..7a60f7d10 100644 --- a/includes/defines.h +++ b/includes/defines.h @@ -10,7 +10,7 @@ #define SAVE_VERSION 47 #define MINOR_VERSION 3 #define IDENT_VERSION "G" //Change this if you're not Simon! It should be a single letter. -#define BETA +//#define BETA #define SERVER "powdertoy.co.uk" @@ -26,8 +26,13 @@ #define TIMEOUT 100 #define HTTP_TIMEOUT 10 +#ifdef RENDERER +#define MENUSIZE 0 +#define BARSIZE 0 +#else #define MENUSIZE 40 #define BARSIZE 17 +#endif #define XRES 612 #define YRES 384 #define NPART XRES*YRES @@ -137,6 +142,7 @@ struct stamp }; typedef struct stamp stamp; +int frameidx; int MSIGN; int CGOL; int ISGOL; diff --git a/src/main.c b/src/main.c index 921471ecc..2ff9af50d 100644 --- a/src/main.c +++ b/src/main.c @@ -153,7 +153,8 @@ static const char *it_msg = "'P' will take a screenshot and save it into the current directory.\n" "\n" "\bgCopyright (c) 2008-11 Stanislaw K Skowronek (\brhttp://powder.unaligned.org\bg, \bbirc.unaligned.org #wtf\bg)\n" - "\bgCopyright (c) 2010-11 Simon Robertshaw, Skresanov Savely, cracker64, Bryan Hoyle, Nathan Cousins, jacksonmj, Lieuwe Mosch\n" + "\bgCopyright (c) 2010-11 Simon Robertshaw, Skresanov Savely, cracker64, Bryan Hoyle, Nathan Cousins, jacksonmj,\n" + " Lieuwe Mosch\n" "\n" "\bgTo use online features such as saving, you need to register at: \brhttp://powdertoy.co.uk/Register.html" ; @@ -178,6 +179,7 @@ int death = 0, framerender = 0; int amd = 1; int FPSB = 0; int MSIGN =-1; +int frameidx = 0; //int CGOL = 0; //int GSPEED = 1;//causes my .exe to crash.. int sound_enable = 0; @@ -2551,6 +2553,72 @@ int process_command_old(pixel *vid_buf,char *console,char *console_error) { return 1; } +#ifdef RENDERER +int main(int argc, char *argv[]) +{ + pixel *vid_buf=calloc((XRES+BARSIZE)*(YRES+MENUSIZE), PIXELSIZE); + int load_size, i=0, j=0; + void *load_data = file_load(argv[1], &load_size); + unsigned char c[3]; + FILE *f; + + cmode = CM_FIRE; + sys_pause = 1; + parts = calloc(sizeof(particle), NPART); + for (i=0; i0){ + //return 0; + info_box(vid_buf, "Save file invalid or from newer version"); + } + + f=fopen(argv[2],"wb"); + fprintf(f,"P6\n%d %d\n255\n",XRES,YRES); + for (j=0; j