Game save renderer
This commit is contained in:
parent
d355353677
commit
67531c2434
16
Makefile
16
Makefile
@ -19,6 +19,18 @@ COMPILER := gcc
|
|||||||
LINUX_TARG := powder-64-sse2 powder-sse powder-sse2
|
LINUX_TARG := powder-64-sse2 powder-sse powder-sse2
|
||||||
WIN32_TARG := powder-sse.exe powder-sse2.exe
|
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)
|
powder: $(SOURCES)
|
||||||
$(PYCOMMAND)
|
$(PYCOMMAND)
|
||||||
$(COMPILER) -DINTERNAL -o$@ $(CFLAGS) $(OFLAGS) $(MFLAGS_SSE3) $(SOURCES) $(LFLAGS) -DLIN64
|
$(COMPILER) -DINTERNAL -o$@ $(CFLAGS) $(OFLAGS) $(MFLAGS_SSE3) $(SOURCES) $(LFLAGS) -DLIN64
|
||||||
@ -31,6 +43,7 @@ powder-debug: $(SOURCES)
|
|||||||
$(PYCOMMAND)
|
$(PYCOMMAND)
|
||||||
$(COMPILER) -DINTERNAL -o$@ $(CFLAGS) $(OFLAGS) $(MFLAGS_SSE3) $(SOURCES) $(LFLAGS) -DLIN64 $(FLAGS_DBUG)
|
$(COMPILER) -DINTERNAL -o$@ $(CFLAGS) $(OFLAGS) $(MFLAGS_SSE3) $(SOURCES) $(LFLAGS) -DLIN64 $(FLAGS_DBUG)
|
||||||
mv $@ build
|
mv $@ build
|
||||||
|
|
||||||
powder-sse3: $(SOURCES)
|
powder-sse3: $(SOURCES)
|
||||||
$(PYCOMMAND)
|
$(PYCOMMAND)
|
||||||
$(COMPILER) -m32 -o$@ $(CFLAGS) $(OFLAGS) $(MFLAGS_SSE3) $(SOURCES) $(LFLAGS) -DLIN32
|
$(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
|
$(COMPILER) -m32 -o$@ $(CFLAGS) $(OFLAGS) $(MFLAGS_SSE) $(SOURCES) $(LFLAGS) -DLIN32
|
||||||
strip $@
|
strip $@
|
||||||
mv $@ build
|
mv $@ build
|
||||||
|
|
||||||
powder-64-sse3-opengl: $(SOURCES)
|
powder-64-sse3-opengl: $(SOURCES)
|
||||||
$(PYCOMMAND)
|
$(PYCOMMAND)
|
||||||
$(COMPILER) -m64 -o$@ $(CFLAGS) $(OFLAGS) $(MFLAGS_SSE3) $(SOURCES) $(LFLAGS) -DLIN64 -lGL -lGLU -DOpenGL
|
$(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
|
powder-res.o: powder-res.rc powder.ico
|
||||||
i586-mingw32msvc-windres powder-res.rc powder-res.o
|
i586-mingw32msvc-windres powder-res.rc powder-res.o
|
||||||
|
|
||||||
powder-sse3.exe: $(SOURCES) powder-res.o
|
powder-sse3.exe: $(SOURCES) powder-res.o
|
||||||
$(PYCOMMAND)
|
$(PYCOMMAND)
|
||||||
i586-mingw32msvc-gcc -o$@ $(CFLAGS) $(OFLAGS) $(MFLAGS_SSE3) $(SOURCES) powder-res.o -lmingw32 -llibregex -lws2_32 -lSDLmain $(LFLAGS) -mwindows -DWIN32
|
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 $@
|
strip $@
|
||||||
chmod 0644 $@
|
chmod 0644 $@
|
||||||
mv $@ build
|
mv $@ build
|
||||||
|
|
||||||
powder-x: $(SOURCES)
|
powder-x: $(SOURCES)
|
||||||
$(PYCOMMAND) --64bit
|
$(PYCOMMAND) --64bit
|
||||||
gcc -o $@ $(CFLAGS) $(OFLAGS) $(LFLAGS_X) $(MFLAGS) $(SOURCES) -DMACOSX -DPIX32BGRA -arch x86_64 -framework Cocoa -framework SDL -framework Python
|
gcc -o $@ $(CFLAGS) $(OFLAGS) $(LFLAGS_X) $(MFLAGS) $(SOURCES) -DMACOSX -DPIX32BGRA -arch x86_64 -framework Cocoa -framework SDL -framework Python
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
#define SAVE_VERSION 47
|
#define SAVE_VERSION 47
|
||||||
#define MINOR_VERSION 3
|
#define MINOR_VERSION 3
|
||||||
#define IDENT_VERSION "G" //Change this if you're not Simon! It should be a single letter.
|
#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"
|
#define SERVER "powdertoy.co.uk"
|
||||||
|
|
||||||
@ -26,8 +26,13 @@
|
|||||||
#define TIMEOUT 100
|
#define TIMEOUT 100
|
||||||
#define HTTP_TIMEOUT 10
|
#define HTTP_TIMEOUT 10
|
||||||
|
|
||||||
|
#ifdef RENDERER
|
||||||
|
#define MENUSIZE 0
|
||||||
|
#define BARSIZE 0
|
||||||
|
#else
|
||||||
#define MENUSIZE 40
|
#define MENUSIZE 40
|
||||||
#define BARSIZE 17
|
#define BARSIZE 17
|
||||||
|
#endif
|
||||||
#define XRES 612
|
#define XRES 612
|
||||||
#define YRES 384
|
#define YRES 384
|
||||||
#define NPART XRES*YRES
|
#define NPART XRES*YRES
|
||||||
@ -137,6 +142,7 @@ struct stamp
|
|||||||
};
|
};
|
||||||
typedef struct stamp stamp;
|
typedef struct stamp stamp;
|
||||||
|
|
||||||
|
int frameidx;
|
||||||
int MSIGN;
|
int MSIGN;
|
||||||
int CGOL;
|
int CGOL;
|
||||||
int ISGOL;
|
int ISGOL;
|
||||||
|
81
src/main.c
81
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"
|
"'P' will take a screenshot and save it into the current directory.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"\bgCopyright (c) 2008-11 Stanislaw K Skowronek (\brhttp://powder.unaligned.org\bg, \bbirc.unaligned.org #wtf\bg)\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"
|
"\n"
|
||||||
"\bgTo use online features such as saving, you need to register at: \brhttp://powdertoy.co.uk/Register.html"
|
"\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 amd = 1;
|
||||||
int FPSB = 0;
|
int FPSB = 0;
|
||||||
int MSIGN =-1;
|
int MSIGN =-1;
|
||||||
|
int frameidx = 0;
|
||||||
//int CGOL = 0;
|
//int CGOL = 0;
|
||||||
//int GSPEED = 1;//causes my .exe to crash..
|
//int GSPEED = 1;//causes my .exe to crash..
|
||||||
int sound_enable = 0;
|
int sound_enable = 0;
|
||||||
@ -2551,6 +2553,72 @@ int process_command_old(pixel *vid_buf,char *console,char *console_error) {
|
|||||||
return 1;
|
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; i<NPART-1; i++)
|
||||||
|
parts[i].life = i+1;
|
||||||
|
parts[NPART-1].life = -1;
|
||||||
|
pfree = 0;
|
||||||
|
fire_bg=calloc(XRES*YRES, PIXELSIZE);
|
||||||
|
memset(fire_r, 0, sizeof(fire_r));
|
||||||
|
memset(fire_g, 0, sizeof(fire_g));
|
||||||
|
memset(fire_b, 0, sizeof(fire_b));
|
||||||
|
memset(fire_bg, 0, XRES*YRES*PIXELSIZE);
|
||||||
|
|
||||||
|
|
||||||
|
prepare_alpha();
|
||||||
|
|
||||||
|
if(load_data && load_size){
|
||||||
|
int parsestate = 0;
|
||||||
|
//parsestate = parse_save(load_data, load_size, 1, 0, 0);
|
||||||
|
parsestate = parse_save(load_data, load_size, 1, 0, 0, bmap, fvx, fvy, signs, parts, pmap);
|
||||||
|
|
||||||
|
for(i=0; i<30; i++){
|
||||||
|
|
||||||
|
update_particles(vid_buf);
|
||||||
|
draw_parts(vid_buf);
|
||||||
|
render_fire(vid_buf);
|
||||||
|
memset(vid_buf, 0, (XRES+BARSIZE)*YRES*PIXELSIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
render_signs(vid_buf);
|
||||||
|
|
||||||
|
if(parsestate>0){
|
||||||
|
//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<YRES; j++)
|
||||||
|
{
|
||||||
|
for (i=0; i<XRES; i++)
|
||||||
|
{
|
||||||
|
c[0] = PIXR(vid_buf[i]);
|
||||||
|
c[1] = PIXG(vid_buf[i]);
|
||||||
|
c[2] = PIXB(vid_buf[i]);
|
||||||
|
fwrite(c,3,1,f);
|
||||||
|
}
|
||||||
|
vid_buf+=XRES+BARSIZE;
|
||||||
|
}
|
||||||
|
fclose(f);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#else
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int hud_enable = 1;
|
int hud_enable = 1;
|
||||||
@ -2776,6 +2844,8 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
while (!sdl_poll()) //the main loop
|
while (!sdl_poll()) //the main loop
|
||||||
{
|
{
|
||||||
|
frameidx++;
|
||||||
|
frameidx %= 30;
|
||||||
if (!sys_pause||framerender) //only update air if not paused
|
if (!sys_pause||framerender) //only update air if not paused
|
||||||
{
|
{
|
||||||
update_air();
|
update_air();
|
||||||
@ -2808,6 +2878,12 @@ int main(int argc, char *argv[])
|
|||||||
if (bsy<0)
|
if (bsy<0)
|
||||||
bsy = 0;
|
bsy = 0;
|
||||||
|
|
||||||
|
memcpy(mmapx_o, mmapx, sizeof(mmapx));
|
||||||
|
memcpy(mmapy_o, mmapy, sizeof(mmapy));
|
||||||
|
|
||||||
|
memset(mmapx, 0, sizeof(mmapx));
|
||||||
|
memset(mmapy, 0, sizeof(mmapy));
|
||||||
|
|
||||||
update_particles(vid_buf); //update everything
|
update_particles(vid_buf); //update everything
|
||||||
draw_parts(vid_buf); //draw particles
|
draw_parts(vid_buf); //draw particles
|
||||||
|
|
||||||
@ -4356,4 +4432,5 @@ int main(int argc, char *argv[])
|
|||||||
Py_Finalize();//cleanup any python stuff.
|
Py_Finalize();//cleanup any python stuff.
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
Reference in New Issue
Block a user