diff options
| author | Cracker64 <cracker642@gmail.com> | 2010-11-30 19:43:42 (GMT) |
|---|---|---|
| committer | Cracker64 <cracker642@gmail.com> | 2010-11-30 19:43:42 (GMT) |
| commit | 491016eaf4b5f3065c43c0a142a0a0ebc2c3de63 (patch) | |
| tree | c037a08df7314ead03baabd3b458de903280406f | |
| parent | bb16ffa2bbef12d8a8b1c151b3d987e272420675 (diff) | |
| download | powder-491016eaf4b5f3065c43c0a142a0a0ebc2c3de63.zip powder-491016eaf4b5f3065c43c0a142a0a0ebc2c3de63.tar.gz | |
Fixed love crash on mac, added adjustable grid mode, hit 'g', goes up to 9.
| -rw-r--r-- | includes/defines.h | 1 | ||||
| -rw-r--r-- | includes/powder.h | 4 | ||||
| -rw-r--r-- | src/graphics.c | 11 | ||||
| -rw-r--r-- | src/main.c | 4 | ||||
| -rw-r--r-- | src/powder.c | 14 |
5 files changed, 27 insertions, 7 deletions
diff --git a/includes/defines.h b/includes/defines.h index 10f210d..cc7fcf3 100644 --- a/includes/defines.h +++ b/includes/defines.h @@ -131,6 +131,7 @@ int SEC; int SEC2; int REPLACE_MODE; int CURRENT_BRUSH; +int GRID_MODE; extern sign signs[MAXSIGNS]; extern stamp stamps[STAMP_MAX]; extern int stamp_count; diff --git a/includes/powder.h b/includes/powder.h index ffb4ee3..260a6ea 100644 --- a/includes/powder.h +++ b/includes/powder.h @@ -369,8 +369,8 @@ static const part_type ptypes[PT_NUM] = {"PRTO", PIXPACK(0x0020EB), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.005f * CFDS, 0, 0, 0, 0, 0, 1, 100, SC_CRACKER, R_TEMP+0.0f +273.15f, 40, "Portal OUT. Things come out here", TYPE_SOLID}, {"PSTE", PIXPACK(0xAA99AA), 0.6f, 0.01f * CFDS, 0.98f, 0.95f, 0.0f, 0.1f, 0.00f, 0.000f * CFDS, 2, 0, 0, 0, 20, 1, 31, SC_CRACKER, R_TEMP-2.0f +273.15f, 29, "Colloid", TYPE_LIQUID}, {"PSTS", PIXPACK(0x776677), 0.0f, 0.00f * CFDS, 0.00f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 20, 0, 100, SC_CRACKER, R_TEMP-2.0f +273.15f, 29, "blah blah solid not in the menu", TYPE_SOLID}, - {"ANAR", PIXPACK(0xFFFFEE), 0.7f, 0.02f * CFDS, 0.96f, 0.80f, 0.1f, 0.1f, 0.00f, 0.000f * CFDS, 1, 10, 0, 0, 30, 1, 85, SC_POWDERS, R_TEMP+0.0f +273.15f, 70, "Very light dust. Behaves", TYPE_PART}, - {"VINE", PIXPACK(0x079A00), 0.0f, 0.00f * CFDS, 0.95f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 20, 0, 0, 10, 1, 100, SC_CRACKER, R_TEMP+0.0f +273.15f, 65, "Vine, not in menu", TYPE_SOLID}, + {"ANAR", PIXPACK(0xFFFFEE), 0.7f, 0.02f * CFDS, 0.96f, 0.80f, 0.1f, 0.1f, 0.00f, 0.000f * CFDS, 1, 10, 0, 0, 30, 1, 85, SC_POWDERS, R_TEMP+0.0f +273.15f, 70, "Very light dust. Behaves opposite", TYPE_PART}, + {"VINE", PIXPACK(0x079A00), 0.0f, 0.00f * CFDS, 0.95f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 20, 0, 0, 10, 1, 100, SC_CRACKER, R_TEMP+0.0f +273.15f, 65, "Vine, grows", TYPE_SOLID}, {"INVS", PIXPACK(0x00CCCC), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 15, 1, 100, SC_CRACKER, R_TEMP+0.0f +273.15f, 164, "Invisible to everything while under pressure.", TYPE_SOLID}, {"EQVE", PIXPACK(0xFFE0A0), 0.7f, 0.02f * CFDS, 0.96f, 0.80f, 0.0f, 0.1f, 0.00f, 0.000f * CFDS, 1, 0, 0, 0, 30, 0, 85, SC_CRACKER, R_TEMP+0.0f +273.15f, 70, "Shared velocity test", TYPE_PART}, {"INST", PIXPACK(0xAAAAAA), 0.0f, 0.00f * CFDS, 1.00f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 1, 0, 100, SC_SPECIAL, R_TEMP+0.0f +273.15f, 251, "helper for INST", 0}, diff --git a/src/graphics.c b/src/graphics.c index 81bc756..30c807a 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1304,6 +1304,17 @@ void draw_parts(pixel *vid) int cr, cg, cb; float fr, fg, fb; float pt = R_TEMP; + if(GRID_MODE) + { + for(ny=0;ny<YRES;ny++) + for(nx=0;nx<XRES;nx++) + { + if(ny%(4*GRID_MODE)==0) + blendpixel(vid, nx, ny, 100, 100, 100, 80); + if(nx%(4*GRID_MODE)==0) + blendpixel(vid, nx, ny, 100, 100, 100, 80); + } + } for(i = 0; i<NPART; i++) { #ifdef OpenGL if(cmode == CM_FANCY) //If fancy mode @@ -1393,6 +1393,8 @@ int main(int argc, char *argv[]) } if(sdl_key==SDLK_INSERT) REPLACE_MODE = !REPLACE_MODE; + if(sdl_key=='g') + GRID_MODE = (GRID_MODE+1)%10; if(sdl_key==SDLK_SPACE) sys_pause = !sys_pause; if(sdl_key=='h') @@ -2165,6 +2167,8 @@ int main(int argc, char *argv[]) sprintf(uitext, "Cracker's V%d FPS:%d Parts:%d REPLACE MODE", SAVE_VERSION, FPS,NUM_PARTS); else if(sdl_mod&(KMOD_CAPS)) sprintf(uitext, "Cracker's V%d FPS:%d Parts:%d CAPS LOCK ON", SAVE_VERSION, FPS, NUM_PARTS); + else if(GRID_MODE) + sprintf(uitext, "Cracker's V%d FPS:%d Parts:%d Grid:%d", SAVE_VERSION, FPS, NUM_PARTS,GRID_MODE); else sprintf(uitext, "Cracker's V%d FPS:%d Parts:%d", SAVE_VERSION, FPS, NUM_PARTS); //printf("%s\n", uitext); diff --git a/src/powder.c b/src/powder.c index 32dc3a9..43ef467 100644 --- a/src/powder.c +++ b/src/powder.c @@ -922,25 +922,27 @@ void update_particles_i(pixel *vid, int start, int inc) if(ISLOVE==1) { ISLOVE = 0; - for(ny=4;ny<YRES-4;ny++) + for(ny=0;ny<YRES-4;ny++) { - for(nx=4;nx<XRES-4;nx++) + for(nx=0;nx<XRES-4;nx++) { r=pmap[ny][nx]; if((r>>8)>=NPART || !r) { continue; } - if(parts[r>>8].type==PT_LOVE) + else if((ny<9||nx<9||ny>YRES-7||nx>XRES-10)&&parts[r>>8].type==PT_LOVE) + parts[r>>8].type = PT_NONE; + else if(parts[r>>8].type==PT_LOVE) { love[nx/9][ny/9] = 1; } } } - for(nx=0;nx<=XRES-4;nx++) + for(nx=9;nx<=XRES-18;nx++) { - for(ny=0;ny<=YRES-4;ny++) + for(ny=9;ny<=YRES-7;ny++) { if(love[nx/9][ny/9]==1) { @@ -956,6 +958,8 @@ void update_particles_i(pixel *vid, int start, int inc) } if(!rt&&loverule[nnx][nny]==1) create_part(-1,nx+nnx,ny+nny,PT_LOVE); + else if(!rt) + continue; else if(parts[rt>>8].type==PT_LOVE&&loverule[nnx][nny]==0) parts[rt>>8].type=PT_NONE; |
