diff options
| -rw-r--r-- | .gitignore | 5 | ||||
| -rw-r--r-- | README | 1 | ||||
| -rw-r--r-- | build/.empty | 0 | ||||
| -rw-r--r-- | includes/defines.h | 8 | ||||
| -rw-r--r-- | includes/powder.h | 4 | ||||
| -rw-r--r-- | src/interface.c | 18 | ||||
| -rw-r--r-- | src/main.c | 11 | ||||
| -rw-r--r-- | src/powder.c | 14 |
8 files changed, 35 insertions, 26 deletions
@@ -1,6 +1,7 @@ *.*.swp -powder-64-sse3 +.directory powder.def -powder-debug gmon.out *.*.orig +build/powder* +build/stamps/* @@ -0,0 +1 @@ +Hello diff --git a/build/.empty b/build/.empty new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/build/.empty diff --git a/includes/defines.h b/includes/defines.h index c22180f..b3b604f 100644 --- a/includes/defines.h +++ b/includes/defines.h @@ -7,8 +7,8 @@ #define PATH_SEP "/" #endif -#define SAVE_VERSION 45 -#define MINOR_VERSION 2 +#define SAVE_VERSION 46 +#define MINOR_VERSION 0 #define IDENT_VERSION "G" //Change this if you're not Simon! It should be a single letter. //#define BETA @@ -61,7 +61,7 @@ extern unsigned char ZSIZE; #define STAMP_Y 4 #define STAMP_MAX 120 -#define NGOL 26 +#define NGOL 25 #define CIRCLE_BRUSH 0 #define SQUARE_BRUSH 1 @@ -136,7 +136,7 @@ int GSPEED; int love[XRES/9][YRES/9]; int lolz[XRES/9][YRES/9]; int gol[XRES][YRES]; -int gol2[XRES][YRES][NGOL]; +int gol2[XRES][YRES][NGOL+1]; int SEC; int SEC2; int console_mode; diff --git a/includes/powder.h b/includes/powder.h index 91d8f1f..b09ad5e 100644 --- a/includes/powder.h +++ b/includes/powder.h @@ -405,7 +405,7 @@ static const part_type ptypes[PT_NUM] = {"WAX", PIXPACK(0xF0F0BB), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 0, 10, 1, 100, SC_SOLIDS, R_TEMP+0.0f +273.15f, 44, "Wax. Melts at moderately high temperatures.", ST_SOLID, TYPE_SOLID, NULL}, {"MWAX", PIXPACK(0xE0E0AA), 0.3f, 0.02f * CFDS, 0.95f, 0.80f, 0.0f, 0.15f, 0.00f, 0.000001f* CFDS,2, 5, 0, 0, 2, 1, 25, SC_LIQUID, R_TEMP+28.0f+273.15f, 44, "Liquid Wax.", ST_LIQUID, TYPE_LIQUID, NULL}, {"PSCN", PIXPACK(0x805050), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 1, 1, 1, 100, SC_ELEC, R_TEMP+0.0f +273.15f, 251, "P-Type Silicon, Will transfer current to any conductor.", ST_SOLID, TYPE_SOLID|PROP_CONDUCTS, NULL}, - {"NSCN", PIXPACK(0x505080), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 1, 1, 1, 100, SC_ELEC, R_TEMP+0.0f +273.15f, 251, "N-Type Silicon, Will only transfer current to P-Type Silicon.", ST_SOLID, TYPE_SOLID|PROP_CONDUCTS, NULL}, + {"NSCN", PIXPACK(0x505080), 0.0f, 0.00f * CFDS, 0.90f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 0, 0, 1, 1, 1, 100, SC_ELEC, R_TEMP+0.0f +273.15f, 251, "N-Type Silicon, Will not transfer current to P-Type Silicon.", ST_SOLID, TYPE_SOLID|PROP_CONDUCTS, NULL}, {"LN2", PIXPACK(0x80A0DF), 0.6f, 0.01f * CFDS, 0.98f, 0.95f, 0.0f, 0.1f, 0.00f, 0.000f * CFDS, 2, 0, 0, 0, 0, 1, 30, SC_LIQUID, 70.15f, 70, "Liquid Nitrogen. Very cold.", ST_SOLID, TYPE_LIQUID, NULL}, {"INSL", PIXPACK(0x9EA3B6), 0.0f, 0.00f * CFDS, 0.95f, 0.00f, 0.0f, 0.0f, 0.00f, 0.000f * CFDS, 0, 7, 0, 0, 10, 1, 100, SC_SPECIAL, R_TEMP+0.0f +273.15f, 0, "Insulator, does not conduct heat or electricity.", ST_SOLID, TYPE_SOLID, NULL}, {"BHOL", PIXPACK(0x202020), 0.0f, 0.00f * CFDS, 0.95f, 0.00f, 0.0f, 0.0f, 0.00f, -0.01f * CFDS, 0, 0, 0, 0, 0, 1, 100, SC_SPECIAL, R_TEMP+70.0f+273.15f, 255, "Black hole, sucks in other particles and heats up.", ST_NONE, TYPE_SOLID, NULL}, @@ -687,7 +687,7 @@ static part_transition ptransitions[PT_NUM] = #undef ST -static int grule[NGOL][10] = +static int grule[NGOL+1][10] = { // 0,1,2,3,4,5,6,7,8,STATES live=1 spawn=2 spawn&live=3 States are kind of how long until it dies, normal ones use two states(living,dead) for others the intermediate states live but do nothing {0,0,0,0,0,0,0,0,0,2},//blank diff --git a/src/interface.c b/src/interface.c index 112fef4..1c2c59a 100644 --- a/src/interface.c +++ b/src/interface.c @@ -867,18 +867,26 @@ void login_ui(pixel *vid_buf) if (res && !strncmp(res, "OK ", 3)) { char *s_id,*u_e,*nres; + printf("\n{%s}\n", res); s_id = strchr(res+3, ' '); + if (!s_id) + goto fail; *(s_id++) = 0; - + u_e = strchr(s_id, ' '); - *(u_e++) = 0; + if (!u_e){ + u_e = malloc(1); + memset(u_e, 0, 1); + } + else + *(u_e++) = 0; strcpy(svf_user_id, res+3); strcpy(svf_session_id, s_id); nres = mystrdup(u_e); - + printf("\n{%s} {%s} {%s}\n", svf_user_id, svf_session_id, nres); - + if (!strncmp(nres, "ADMIN", 5)) { svf_admin = 1; @@ -3854,7 +3862,7 @@ char *console_ui(pixel *vid_buf,char error[255]) { //TODO: error messages, show mx /= sdl_scale; my /= sdl_scale; ed.focus = 1; - + clearrect(vid_buf, 0, 0, XRES+BARSIZE, 220);//anyway to make it transparent? draw_line(vid_buf, 1, 219, XRES, 219, 228, 228, 228, XRES+BARSIZE); drawtext(vid_buf, 100, 15, "Welcome to The Powder Toy console v.2 (by cracker64)\n" @@ -2552,12 +2552,11 @@ int main(int argc, char *argv[]) return 0; } int process_command(pixel *vid_buf,char *console,char *console_error) { - -int nx,ny,i,j; -char *console2; -char *console3; -char *console4; -char *console5; + int nx,ny,i,j; + char *console2; + char *console3; + char *console4; + char *console5; //sprintf(console_error, "%s", console); if(console && strcmp(console, "")!=0 && strncmp(console, " ", 1)!=0) { diff --git a/src/powder.c b/src/powder.c index b2932d1..493dec7 100644 --- a/src/powder.c +++ b/src/powder.c @@ -1328,7 +1328,7 @@ void update_particles_i(pixel *vid, int start, int inc) neighbors = gol2[nx][ny][0]; if(neighbors==0 || !(ptypes[r&0xFF].properties&PROP_LIFE || !r&0xFF) || (r>>8)>=NPART) continue; - for ( golnum = 1; golnum<NGOL; golnum++) + for ( golnum = 1; golnum<=NGOL; golnum++) for ( goldelete = 0; goldelete<9; goldelete++) { if (neighbors==goldelete&&gol[nx][ny]==0&&grule[golnum][goldelete]>=2&&gol2[nx][ny][golnum]>=(goldelete%2)+goldelete/2) @@ -1345,7 +1345,7 @@ void update_particles_i(pixel *vid, int start, int inc) parts[r>>8].type = PT_NONE;//using kill_part makes it not work } gol2[nx][ny][0] = 0; - for ( z = 1; z<NGOL; z++) + for ( z = 1; z<=NGOL; z++) gol2[nx][ny][z] = 0; } if (createdsomething) @@ -1963,15 +1963,15 @@ killed: { parts[i].x = clear_xf+(j-clear_x); parts[i].y = fin_yf; - x = j; - y = fin_y; + nx = j; + ny = fin_y; s = 1; break; } if (try_move(i, x, y, j, clear_y)) { parts[i].x = clear_xf+(j-clear_x); - x = j; + nx = j; s = 1; break; } @@ -1985,12 +1985,12 @@ killed: if (s) for (j=clear_y+r; j>=0 && j<YRES && j>=clear_y-rt && j<clear_y+rt; j+=r) { - if (try_move(i, x, y, clear_x, j)) + if (try_move(i, x, y, nx, j)) { parts[i].y = clear_yf+(j-clear_y); break; } - if ((pmap[j][x]&255)!=t || (bmap[j/CELL][x/CELL] && bmap[j/CELL][x/CELL]!=WL_STREAM)) + if ((pmap[j][nx]&255)!=t || (bmap[j/CELL][nx/CELL] && bmap[j/CELL][nx/CELL]!=WL_STREAM)) { s = 0; break; |
