summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCracker64 <cracker642@gmail.com>2010-11-30 19:43:42 (GMT)
committer Cracker64 <cracker642@gmail.com>2010-11-30 19:43:42 (GMT)
commit491016eaf4b5f3065c43c0a142a0a0ebc2c3de63 (patch)
treec037a08df7314ead03baabd3b458de903280406f
parentbb16ffa2bbef12d8a8b1c151b3d987e272420675 (diff)
downloadpowder-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.h1
-rw-r--r--includes/powder.h4
-rw-r--r--src/graphics.c11
-rw-r--r--src/main.c4
-rw-r--r--src/powder.c14
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
diff --git a/src/main.c b/src/main.c
index ebb39ba..41f4945 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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;