summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon <simon@hardwired.org.uk>2011-04-08 14:28:57 (GMT)
committer Simon <simon@hardwired.org.uk>2011-04-08 14:28:57 (GMT)
commit626cc8fa6a6cf5e2f046d138b72e3122614c46ad (patch)
tree670c71d232ad958ec4689e9653741c6907d3becc
parent60039b531e4bec2c8f16817b8da2beda148e828d (diff)
downloadpowder-626cc8fa6a6cf5e2f046d138b72e3122614c46ad.zip
powder-626cc8fa6a6cf5e2f046d138b72e3122614c46ad.tar.gz
Remove a TON of warnings
-rw-r--r--includes/graphics.h19
-rw-r--r--includes/misc.h19
-rw-r--r--includes/powder.h51
-rw-r--r--src/main.c1013
4 files changed, 525 insertions, 577 deletions
diff --git a/includes/graphics.h b/includes/graphics.h
index eed3ed6..31f8c57 100644
--- a/includes/graphics.h
+++ b/includes/graphics.h
@@ -64,17 +64,9 @@ int draw_tool_xy(pixel *vid_buf, int x, int y, int b, unsigned pc);
void draw_menu(pixel *vid_buf, int i, int hover);
-#if defined(WIN32) && !defined(__GNUC__)
-_inline void drawpixel(pixel *vid, int x, int y, int r, int g, int b, int a);
-#else
-extern inline void drawpixel(pixel *vid, int x, int y, int r, int g, int b, int a);
-#endif
+void drawpixel(pixel *vid, int x, int y, int r, int g, int b, int a);
-#if defined(WIN32) && !defined(__GNUC__)
-_inline int drawchar(pixel *vid, int x, int y, int c, int r, int g, int b, int a);
-#else
-extern inline int drawchar(pixel *vid, int x, int y, int c, int r, int g, int b, int a);
-#endif
+int drawchar(pixel *vid, int x, int y, int c, int r, int g, int b, int a);
int drawtext(pixel *vid, int x, int y, const char *s, int r, int g, int b, int a);
@@ -99,13 +91,10 @@ void textnpos(char *s, int n, int w, int *cx, int *cy);
int textwidthx(char *s, int w);
int textposxy(char *s, int width, int w, int h);
+
int textwrapheight(char *s, int width);
-#if defined(WIN32) && !defined(__GNUC__)
-_inline void blendpixel(pixel *vid, int x, int y, int r, int g, int b, int a);
-#else
void blendpixel(pixel *vid, int x, int y, int r, int g, int b, int a);
-#endif
void draw_icon(pixel *vid_buf, int x, int y, char ch, int flag);
@@ -122,7 +111,9 @@ void xor_line(int x1, int y1, int x2, int y2, pixel *vid);
void xor_rect(pixel *vid, int x, int y, int w, int h);
void draw_parts(pixel *vid);
+
void draw_wavelengths(pixel *vid, int x, int y, int h, int wl);
+
void render_signs(pixel *vid_buf);
void render_fire(pixel *dst);
diff --git a/includes/misc.h b/includes/misc.h
index c3ba03e..ef23b1e 100644
--- a/includes/misc.h
+++ b/includes/misc.h
@@ -20,24 +20,13 @@ __asm__ __volatile ("cpuid":\
#endif
static char hex[] = "0123456789ABCDEF";
+
//Signum function
-#if defined(WIN32) && !defined(__GNUC__)
-extern _inline int isign(float i);
-#else
-extern inline int isign(float i);
-#endif
+int isign(float i);
-#if defined(WIN32) && !defined(__GNUC__)
-extern _inline unsigned clamp_flt(float f, float min, float max);
-#else
-extern inline unsigned clamp_flt(float f, float min, float max);
-#endif
+unsigned clamp_flt(float f, float min, float max);
-#if defined(WIN32) && !defined(__GNUC__)
-extern _inline float restrict_flt(float f, float min, float max);
-#else
-extern inline float restrict_flt(float f, float min, float max);
-#endif
+float restrict_flt(float f, float min, float max);
char *mystrdup(char *s);
diff --git a/includes/powder.h b/includes/powder.h
index 8e40ead..66614b2 100644
--- a/includes/powder.h
+++ b/includes/powder.h
@@ -814,43 +814,19 @@ static void create_gain_photon(int pp);
void kill_part(int i);
-#if defined(WIN32) && !defined(__GNUC__)
-extern _inline void part_change_type(int i, int x, int y, int t);
-#else
-extern inline void part_change_type(int i, int x, int y, int t);
-#endif
+void part_change_type(int i, int x, int y, int t);
-#if defined(WIN32) && !defined(__GNUC__)
-extern _inline int create_part(int p, int x, int y, int t);
-#else
-extern inline int create_part(int p, int x, int y, int t);
-#endif
+int create_part(int p, int x, int y, int t);
-#if defined(WIN32) && !defined(__GNUC__)
-extern _inline void delete_part(int x, int y);
-#else
-extern inline void delete_part(int x, int y);
-#endif
+void delete_part(int x, int y);
-#if defined(WIN32) && !defined(__GNUC__)
-extern _inline int is_wire(int x, int y);
-#else
-extern inline int is_wire(int x, int y);
-#endif
+int is_wire(int x, int y);
-#if defined(WIN32) && !defined(__GNUC__)
-extern _inline int is_wire_off(int x, int y);
-#else
-extern inline int is_wire_off(int x, int y);
-#endif
+int is_wire_off(int x, int y);
void set_emap(int x, int y);
-#if defined(WIN32) && !defined(__GNUC__)
-extern _inline int parts_avg(int ci, int ni, int t);
-#else
-extern int parts_avg(int ci, int ni, int t);
-#endif
+int parts_avg(int ci, int ni, int t);
int nearest_part(int ci, int t);
@@ -869,20 +845,11 @@ int flood_parts(int x, int y, int c, int cm, int bm);
int create_parts(int x, int y, int rx, int ry, int c);
void create_line(int x1, int y1, int x2, int y2, int rx, int ry, int c);
-void *transform_save(void *odata, int *size, matrix2d transform, vector2d translate);
-
-#if defined(WIN32) && !defined(__GNUC__)
-extern _inline void orbitalparts_get(int block1, int block2, int resblock1[], int resblock2[]);
-#else
-extern inline void orbitalparts_get(int block1, int block2, int resblock1[], int resblock2[]);
-#endif
+void *transform_save(void *odata, int *size, matrix2d transform, vector2d translate);
+void orbitalparts_get(int block1, int block2, int resblock1[], int resblock2[]);
-#if defined(WIN32) && !defined(__GNUC__)
-extern _inline void orbitalparts_set(int *block1, int *block2, int resblock1[], int resblock2[]);
-#else
-extern inline void orbitalparts_set(int *block1, int *block2, int resblock1[], int resblock2[]);
-#endif
+void orbitalparts_set(int *block1, int *block2, int resblock1[], int resblock2[]);
#endif
diff --git a/src/main.c b/src/main.c
index c019bfd..c6776d3 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2049,6 +2049,508 @@ static PyMethodDef EmbMethods[] = { //WARNING! don't forget to register your fun
};
#endif
+#ifdef PYCONSOLE
+int process_command(pixel *vid_buf,char *console,char *console_error,PyObject *pfunc) {
+ int y,x,nx,ny,i,j,k,m;
+ int do_next = 1;
+ char xcoord[10];
+ char ycoord[10];
+ char console2[15];
+ char console3[15];
+ char console4[15];
+ char console5[15];
+ PyObject *pvalue,*pargs;
+ //sprintf(console_error, "%s", console);
+ if (console && strcmp(console, "")!=0 && strncmp(console, " ", 1)!=0)
+ {
+ sscanf(console,"%14s %14s %14s %14s", console2, console3, console4, console5);//why didn't i know about this function?!
+ if (strcmp(console2, "quit")==0)
+ {
+ return -1;
+ } else {
+ //handle them command
+ pargs=Py_BuildValue("(s)",console);
+ pvalue = PyObject_CallObject(pfunc, pargs);
+ Py_DECREF(pargs);
+ pargs=NULL;
+ if (pvalue==NULL)
+ strcpy(console_error,"failed to execute code.");
+ pvalue=NULL;
+ }
+ }
+ return 1;
+}
+#endif
+int process_command_old(pixel *vid_buf,char *console,char *console_error) {
+ int y,x,nx,ny,i,j,k,m;
+ float f;
+ int do_next = 1;
+ char xcoord[10] = "";
+ char ycoord[10] = "";
+ char console2[15] = "";
+ char console3[15] = "";
+ char console4[15] = "";
+ char console5[15] = "";
+ //sprintf(console_error, "%s", console);
+ if (console && strcmp(console, "")!=0 && strncmp(console, " ", 1)!=0)
+ {
+ sscanf(console,"%14s %14s %14s %14s", console2, console3, console4, console5);//why didn't i know about this function?!
+ if (strcmp(console2, "quit")==0)
+ {
+ return -1;
+ }
+ else if (strcmp(console2, "file")==0 && console3[0])
+ {
+ if (file_script) {
+ FILE *f=fopen(console3, "r");
+ if (f)
+ {
+ char fileread[5000];//TODO: make this change with file size
+ char pch[5000];
+ char tokens[10];
+ int tokensize;
+ nx = 0;
+ ny = 0;
+ j = 0;
+ m = 0;
+ if (console4[0])
+ console_parse_coords(console4, &nx , &ny, console_error);
+ memset(pch,0,sizeof(pch));
+ memset(fileread,0,sizeof(fileread));
+ fread(fileread,1,5000,f);
+ for (i=0; i<strlen(fileread); i++)
+ {
+ if (fileread[i] != '\n')
+ {
+ pch[i-j] = fileread[i];
+ if (fileread[i] != ' ')
+ tokens[i-m] = fileread[i];
+ }
+ if (fileread[i] == ' ' || fileread[i] == '\n')
+ {
+ if (sregexp(tokens,"^x.[0-9],y.[0-9]")==0)//TODO: fix regex matching to work with x,y ect, right now it has to have a +0 or -0
+ {
+ char temp[5];
+ int starty = 0;
+ tokensize = strlen(tokens);
+ x = 0;
+ y = 0;
+ sscanf(tokens,"x%d,y%d",&x,&y);
+ sscanf(tokens,"%9s,%9s",xcoord,ycoord);
+ x += nx;
+ y += ny;
+ sprintf(xcoord,"%d",x);
+ sprintf(ycoord,"%d",y);
+ for (k = 0; k<strlen(xcoord); k++)//rewrite pch with numbers
+ {
+ pch[i-j-tokensize+k] = xcoord[k];
+ starty = k+1;
+ }
+ pch[i-j-tokensize+starty] = ',';
+ starty++;
+ for (k=0; k<strlen(ycoord); k++)
+ {
+ pch[i-j-tokensize+starty+k] = ycoord[k];
+
+ }
+ pch[i-j-tokensize +strlen(xcoord) +1 +strlen(ycoord)] = ' ';
+ j = j -tokensize +strlen(xcoord) +1 +strlen(ycoord);
+ }
+ memset(tokens,0,sizeof(tokens));
+ m = i+1;
+ }
+ if (fileread[i] == '\n')
+ {
+
+ if (do_next)
+ {
+ if (strcmp(pch,"else")==0)
+ do_next = 0;
+ else
+ do_next = process_command_old(vid_buf, pch, console_error);
+ }
+ else if (strcmp(pch,"endif")==0 || strcmp(pch,"else")==0)
+ do_next = 1;
+ memset(pch,0,sizeof(pch));
+ j = i+1;
+ }
+ }
+ //sprintf(console_error, "%s exists", console3);
+ fclose(f);
+ }
+ else
+ {
+ sprintf(console_error, "%s does not exist", console3);
+ }
+ }
+ else
+ {
+ sprintf(console_error, "Scripts are not enabled");
+ }
+
+ }
+ else if (strcmp(console2, "sound")==0 && console3[0])
+ {
+ if (sound_enable) play_sound(console3);
+ else strcpy(console_error, "Audio device not available - cannot play sounds");
+ }
+ else if (strcmp(console2, "python")==0)
+ if (pygood==1)
+ pyready=1;
+ else
+ strcpy(console_error, "python not ready. check stdout for more info.");
+ else if (strcmp(console2, "load")==0 && console3[0])
+ {
+ j = atoi(console3);
+ if (j)
+ {
+ open_ui(vid_buf, console3, NULL);
+ console_mode = 0;
+ }
+ }
+ else if (strcmp(console2, "if")==0 && console3[0])
+ {
+ if (strcmp(console3, "type")==0)//TODO: add more than just type, and be able to check greater/less than
+ {
+ if (console_parse_partref(console4, &i, console_error)
+ && console_parse_type(console5, &j, console_error))
+ {
+ if (parts[i].type==j)
+ return 1;
+ else
+ return 0;
+ }
+ else
+ return 0;
+ }
+ }
+ else if (strcmp(console2, "create")==0 && console3[0] && console4[0])
+ {
+ if (console_parse_type(console3, &j, console_error)
+ && console_parse_coords(console4, &nx, &ny, console_error))
+ {
+ if (!j)
+ strcpy(console_error, "Cannot create particle with type NONE");
+ else if (create_part(-1,nx,ny,j)<0)
+ strcpy(console_error, "Could not create particle");
+ }
+ }
+ else if ((strcmp(console2, "delete")==0 || strcmp(console2, "kill")==0) && console3[0])
+ {
+ if (console_parse_partref(console3, &i, console_error))
+ kill_part(i);
+ }
+ else if (strcmp(console2, "reset")==0 && console3[0])
+ {
+ if (strcmp(console3, "pressure")==0)
+ {
+ for (nx = 0; nx<XRES/CELL; nx++)
+ for (ny = 0; ny<YRES/CELL; ny++)
+ {
+ pv[ny][nx] = 0;
+ }
+ }
+ else if (strcmp(console3, "velocity")==0)
+ {
+ for (nx = 0; nx<XRES/CELL; nx++)
+ for (ny = 0; ny<YRES/CELL; ny++)
+ {
+ vx[ny][nx] = 0;
+ vy[ny][nx] = 0;
+ }
+ }
+ else if (strcmp(console3, "sparks")==0)
+ {
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type==PT_SPRK)
+ {
+ parts[i].type = parts[i].ctype;
+ parts[i].life = 4;
+ }
+ }
+ }
+ else if (strcmp(console3, "temp")==0)
+ {
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type)
+ {
+ parts[i].temp = ptypes[parts[i].type].heat;
+ }
+ }
+ }
+ }
+ else if (strcmp(console2, "set")==0 && console3[0] && console4[0] && console5[0])
+ {
+ if (strcmp(console3, "life")==0)
+ {
+ if (strcmp(console4, "all")==0)
+ {
+ j = atoi(console5);
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type)
+ parts[i].life = j;
+ }
+ }
+ else if (console_parse_type(console4, &j, console_error))
+ {
+ k = atoi(console5);
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type == j)
+ parts[i].life = k;
+ }
+ }
+ else
+ {
+ if (console_parse_partref(console4, &i, console_error))
+ {
+ j = atoi(console5);
+ parts[i].life = j;
+ }
+ }
+ }
+ if (strcmp(console3, "type")==0)
+ {
+ if (strcmp(console4, "all")==0)
+ {
+ if (console_parse_type(console5, &j, console_error))
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type)
+ parts[i].type = j;
+ }
+ }
+ else if (console_parse_type(console4, &j, console_error)
+ && console_parse_type(console5, &k, console_error))
+ {
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type == j)
+ parts[i].type = k;
+ }
+ }
+ else
+ {
+ if (console_parse_partref(console4, &i, console_error)
+ && console_parse_type(console5, &j, console_error))
+ {
+ parts[i].type = j;
+ }
+ }
+ }
+ if (strcmp(console3, "temp")==0)
+ {
+ if (strcmp(console4, "all")==0)
+ {
+ f = atof(console5);
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type)
+ parts[i].temp = f;
+ }
+ }
+ else if (console_parse_type(console4, &j, console_error))
+ {
+ f = atof(console5);
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type == j)
+ parts[i].temp= f;
+ }
+ }
+ else
+ {
+ if (console_parse_partref(console4, &i, console_error))
+ {
+ f = atof(console5);
+ parts[i].temp = f;
+ }
+ }
+ }
+ if (strcmp(console3, "tmp")==0)
+ {
+ if (strcmp(console4, "all")==0)
+ {
+ j = atoi(console5);
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type)
+ parts[i].tmp = j;
+ }
+ }
+ else if (console_parse_type(console4, &j, console_error))
+ {
+ k = atoi(console5);
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type == j)
+ parts[i].tmp = k;
+ }
+ }
+ else
+ {
+ if (console_parse_partref(console4, &i, console_error))
+ {
+ j = atoi(console5);
+ parts[i].tmp = j;
+ }
+ }
+ }
+ if (strcmp(console3, "x")==0)
+ {
+ if (strcmp(console4, "all")==0)
+ {
+ j = atoi(console5);
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type)
+ parts[i].x = j;
+ }
+ }
+ else if (console_parse_type(console4, &j, console_error))
+ {
+ k = atoi(console5);
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type == j)
+ parts[i].x = k;
+ }
+ }
+ else
+ {
+ if (console_parse_partref(console4, &i, console_error))
+ {
+ j = atoi(console5);
+ parts[i].x = j;
+ }
+ }
+ }
+ if (strcmp(console3, "y")==0)
+ {
+ if (strcmp(console4, "all")==0)
+ {
+ j = atoi(console5);
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type)
+ parts[i].y = j;
+ }
+ }
+ else if (console_parse_type(console4, &j, console_error))
+ {
+ k = atoi(console5);
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type == j)
+ parts[i].y = k;
+ }
+ }
+ else
+ {
+ if (console_parse_partref(console4, &i, console_error))
+ {
+ j = atoi(console5);
+ parts[i].y = j;
+ }
+ }
+ }
+ if (strcmp(console3, "ctype")==0)
+ {
+ if (strcmp(console4, "all")==0)
+ {
+ if (console_parse_type(console5, &j, console_error))
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type)
+ parts[i].ctype = j;
+ }
+ }
+ else if (console_parse_type(console4, &j, console_error)
+ && console_parse_type(console5, &k, console_error))
+ {
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type == j)
+ parts[i].ctype = k;
+ }
+ }
+ else
+ {
+ if (console_parse_partref(console4, &i, console_error)
+ && console_parse_type(console5, &j, console_error))
+ {
+ parts[i].ctype = j;
+ }
+ }
+ }
+ if (strcmp(console3, "vx")==0)
+ {
+ if (strcmp(console4, "all")==0)
+ {
+ f = atof(console5);
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type)
+ parts[i].vx = f;
+ }
+ }
+ else if (console_parse_type(console4, &j, console_error))
+ {
+ f = atof(console5);
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type == j)
+ parts[i].vx = f;
+ }
+ }
+ else
+ {
+ if (console_parse_partref(console4, &i, console_error))
+ {
+ f = atof(console5);
+ parts[i].vx = f;
+ }
+ }
+ }
+ if (strcmp(console3, "vy")==0)
+ {
+ if (strcmp(console4, "all")==0)
+ {
+ f = atof(console5);
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type)
+ parts[i].vy = f;
+ }
+ }
+ else if (console_parse_type(console4, &j, console_error))
+ {
+ f = atof(console5);
+ for (i=0; i<NPART; i++)
+ {
+ if (parts[i].type == j)
+ parts[i].vy = f;
+ }
+ }
+ else
+ {
+ if (console_parse_partref(console4, &i, console_error))
+ {
+ f = atof(console5);
+ parts[i].vy = f;
+ }
+ }
+ }
+ }
+ else
+ strcpy(console_error, "Invalid Command");
+ }
+ return 1;
+}
+
int main(int argc, char *argv[])
{
int hud_enable = 1;
@@ -3766,7 +4268,7 @@ int main(int argc, char *argv[])
console = console_ui(vid_buf,console_error,console_more);
console = mystrdup(console);
strcpy(console_error,"");
- if (process_command(vid_buf,console,&console_error,pfunc)==-1)
+ if (process_command(vid_buf, console, console_error,pfunc)==-1)
{
free(console);
break;
@@ -3782,7 +4284,7 @@ int main(int argc, char *argv[])
console = console_ui(vid_buf,console_error,console_more);
console = mystrdup(console);
strcpy(console_error,"");
- if (process_command_old(vid_buf,console,&console_error)==-1)
+ if (process_command_old(vid_buf, console, console_error)==-1)
{
free(console);
break;
@@ -3794,10 +4296,10 @@ int main(int argc, char *argv[])
#else
char *console;
sys_pause = 1;
- console = console_ui(vid_buf,console_error,console_more);
+ console = console_ui(vid_buf, console_error, console_more);
console = mystrdup(console);
strcpy(console_error,"");
- if (process_command_old(vid_buf,console,&console_error)==-1)
+ if (process_command_old(vid_buf, console, console_error)==-1)
{
free(console);
break;
@@ -3854,505 +4356,4 @@ int main(int argc, char *argv[])
Py_Finalize();//cleanup any python stuff.
#endif
return 0;
-}
-#ifdef PYCONSOLE
-int process_command(pixel *vid_buf,char *console,char *console_error,PyObject *pfunc) {
- int y,x,nx,ny,i,j,k,m;
- int do_next = 1;
- char xcoord[10];
- char ycoord[10];
- char console2[15];
- char console3[15];
- char console4[15];
- char console5[15];
- PyObject *pvalue,*pargs;
- //sprintf(console_error, "%s", console);
- if (console && strcmp(console, "")!=0 && strncmp(console, " ", 1)!=0)
- {
- sscanf(console,"%14s %14s %14s %14s", console2, console3, console4, console5);//why didn't i know about this function?!
- if (strcmp(console2, "quit")==0)
- {
- return -1;
- } else {
- //handle them command
- pargs=Py_BuildValue("(s)",console);
- pvalue = PyObject_CallObject(pfunc, pargs);
- Py_DECREF(pargs);
- pargs=NULL;
- if (pvalue==NULL)
- strcpy(console_error,"failed to execute code.");
- pvalue=NULL;
- }
- }
- return 1;
-}
-#endif
-int process_command_old(pixel *vid_buf,char *console,char *console_error) {
- int y,x,nx,ny,i,j,k,m;
- float f;
- int do_next = 1;
- char xcoord[10] = "";
- char ycoord[10] = "";
- char console2[15] = "";
- char console3[15] = "";
- char console4[15] = "";
- char console5[15] = "";
- //sprintf(console_error, "%s", console);
- if (console && strcmp(console, "")!=0 && strncmp(console, " ", 1)!=0)
- {
- sscanf(console,"%14s %14s %14s %14s", console2, console3, console4, console5);//why didn't i know about this function?!
- if (strcmp(console2, "quit")==0)
- {
- return -1;
- }
- else if (strcmp(console2, "file")==0 && console3[0])
- {
- if (file_script) {
- FILE *f=fopen(console3, "r");
- if (f)
- {
- char fileread[5000];//TODO: make this change with file size
- char pch[5000];
- char tokens[10];
- int tokensize;
- nx = 0;
- ny = 0;
- j = 0;
- m = 0;
- if (console4[0])
- console_parse_coords(console4, &nx , &ny, console_error);
- memset(pch,0,sizeof(pch));
- memset(fileread,0,sizeof(fileread));
- fread(fileread,1,5000,f);
- for (i=0; i<strlen(fileread); i++)
- {
- if (fileread[i] != '\n')
- {
- pch[i-j] = fileread[i];
- if (fileread[i] != ' ')
- tokens[i-m] = fileread[i];
- }
- if (fileread[i] == ' ' || fileread[i] == '\n')
- {
- if (sregexp(tokens,"^x.[0-9],y.[0-9]")==0)//TODO: fix regex matching to work with x,y ect, right now it has to have a +0 or -0
- {
- char temp[5];
- int starty = 0;
- tokensize = strlen(tokens);
- x = 0;
- y = 0;
- sscanf(tokens,"x%d,y%d",&x,&y);
- sscanf(tokens,"%9s,%9s",xcoord,ycoord);
- x += nx;
- y += ny;
- sprintf(xcoord,"%d",x);
- sprintf(ycoord,"%d",y);
- for (k = 0; k<strlen(xcoord); k++)//rewrite pch with numbers
- {
- pch[i-j-tokensize+k] = xcoord[k];
- starty = k+1;
- }
- pch[i-j-tokensize+starty] = ',';
- starty++;
- for (k=0; k<strlen(ycoord); k++)
- {
- pch[i-j-tokensize+starty+k] = ycoord[k];
-
- }
- pch[i-j-tokensize +strlen(xcoord) +1 +strlen(ycoord)] = ' ';
- j = j -tokensize +strlen(xcoord) +1 +strlen(ycoord);
- }
- memset(tokens,0,sizeof(tokens));
- m = i+1;
- }
- if (fileread[i] == '\n')
- {
-
- if (do_next)
- {
- if (strcmp(pch,"else")==0)
- do_next = 0;
- else
- do_next = process_command_old(vid_buf, pch, console_error);
- }
- else if (strcmp(pch,"endif")==0 || strcmp(pch,"else")==0)
- do_next = 1;
- memset(pch,0,sizeof(pch));
- j = i+1;
- }
- }
- //sprintf(console_error, "%s exists", console3);
- fclose(f);
- }
- else
- {
- sprintf(console_error, "%s does not exist", console3);
- }
- }
- else
- {
- sprintf(console_error, "Scripts are not enabled");
- }
-
- }
- else if (strcmp(console2, "sound")==0 && console3[0])
- {
- if (sound_enable) play_sound(console3);
- else strcpy(console_error, "Audio device not available - cannot play sounds");
- }
- else if (strcmp(console2, "python")==0)
- if (pygood==1)
- pyready=1;
- else
- strcpy(console_error, "python not ready. check stdout for more info.");
- else if (strcmp(console2, "load")==0 && console3[0])
- {
- j = atoi(console3);
- if (j)
- {
- open_ui(vid_buf, console3, NULL);
- console_mode = 0;
- }
- }
- else if (strcmp(console2, "if")==0 && console3[0])
- {
- if (strcmp(console3, "type")==0)//TODO: add more than just type, and be able to check greater/less than
- {
- if (console_parse_partref(console4, &i, console_error)
- && console_parse_type(console5, &j, console_error))
- {
- if (parts[i].type==j)
- return 1;
- else
- return 0;
- }
- else
- return 0;
- }
- }
- else if (strcmp(console2, "create")==0 && console3[0] && console4[0])
- {
- if (console_parse_type(console3, &j, console_error)
- && console_parse_coords(console4, &nx, &ny, console_error))
- {
- if (!j)
- strcpy(console_error, "Cannot create particle with type NONE");
- else if (create_part(-1,nx,ny,j)<0)
- strcpy(console_error, "Could not create particle");
- }
- }
- else if ((strcmp(console2, "delete")==0 || strcmp(console2, "kill")==0) && console3[0])
- {
- if (console_parse_partref(console3, &i, console_error))
- kill_part(i);
- }
- else if (strcmp(console2, "reset")==0 && console3[0])
- {
- if (strcmp(console3, "pressure")==0)
- {
- for (nx = 0; nx<XRES/CELL; nx++)
- for (ny = 0; ny<YRES/CELL; ny++)
- {
- pv[ny][nx] = 0;
- }
- }
- else if (strcmp(console3, "velocity")==0)
- {
- for (nx = 0; nx<XRES/CELL; nx++)
- for (ny = 0; ny<YRES/CELL; ny++)
- {
- vx[ny][nx] = 0;
- vy[ny][nx] = 0;
- }
- }
- else if (strcmp(console3, "sparks")==0)
- {
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type==PT_SPRK)
- {
- parts[i].type = parts[i].ctype;
- parts[i].life = 4;
- }
- }
- }
- else if (strcmp(console3, "temp")==0)
- {
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type)
- {
- parts[i].temp = ptypes[parts[i].type].heat;
- }
- }
- }
- }
- else if (strcmp(console2, "set")==0 && console3[0] && console4[0] && console5[0])
- {
- if (strcmp(console3, "life")==0)
- {
- if (strcmp(console4, "all")==0)
- {
- j = atoi(console5);
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type)
- parts[i].life = j;
- }
- }
- else if (console_parse_type(console4, &j, console_error))
- {
- k = atoi(console5);
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type == j)
- parts[i].life = k;
- }
- }
- else
- {
- if (console_parse_partref(console4, &i, console_error))
- {
- j = atoi(console5);
- parts[i].life = j;
- }
- }
- }
- if (strcmp(console3, "type")==0)
- {
- if (strcmp(console4, "all")==0)
- {
- if (console_parse_type(console5, &j, console_error))
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type)
- parts[i].type = j;
- }
- }
- else if (console_parse_type(console4, &j, console_error)
- && console_parse_type(console5, &k, console_error))
- {
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type == j)
- parts[i].type = k;
- }
- }
- else
- {
- if (console_parse_partref(console4, &i, console_error)
- && console_parse_type(console5, &j, console_error))
- {
- parts[i].type = j;
- }
- }
- }
- if (strcmp(console3, "temp")==0)
- {
- if (strcmp(console4, "all")==0)
- {
- f = atof(console5);
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type)
- parts[i].temp = f;
- }
- }
- else if (console_parse_type(console4, &j, console_error))
- {
- f = atof(console5);
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type == j)
- parts[i].temp= f;
- }
- }
- else
- {
- if (console_parse_partref(console4, &i, console_error))
- {
- f = atof(console5);
- parts[i].temp = f;
- }
- }
- }
- if (strcmp(console3, "tmp")==0)
- {
- if (strcmp(console4, "all")==0)
- {
- j = atoi(console5);
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type)
- parts[i].tmp = j;
- }
- }
- else if (console_parse_type(console4, &j, console_error))
- {
- k = atoi(console5);
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type == j)
- parts[i].tmp = k;
- }
- }
- else
- {
- if (console_parse_partref(console4, &i, console_error))
- {
- j = atoi(console5);
- parts[i].tmp = j;
- }
- }
- }
- if (strcmp(console3, "x")==0)
- {
- if (strcmp(console4, "all")==0)
- {
- j = atoi(console5);
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type)
- parts[i].x = j;
- }
- }
- else if (console_parse_type(console4, &j, console_error))
- {
- k = atoi(console5);
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type == j)
- parts[i].x = k;
- }
- }
- else
- {
- if (console_parse_partref(console4, &i, console_error))
- {
- j = atoi(console5);
- parts[i].x = j;
- }
- }
- }
- if (strcmp(console3, "y")==0)
- {
- if (strcmp(console4, "all")==0)
- {
- j = atoi(console5);
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type)
- parts[i].y = j;
- }
- }
- else if (console_parse_type(console4, &j, console_error))
- {
- k = atoi(console5);
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type == j)
- parts[i].y = k;
- }
- }
- else
- {
- if (console_parse_partref(console4, &i, console_error))
- {
- j = atoi(console5);
- parts[i].y = j;
- }
- }
- }
- if (strcmp(console3, "ctype")==0)
- {
- if (strcmp(console4, "all")==0)
- {
- if (console_parse_type(console5, &j, console_error))
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type)
- parts[i].ctype = j;
- }
- }
- else if (console_parse_type(console4, &j, console_error)
- && console_parse_type(console5, &k, console_error))
- {
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type == j)
- parts[i].ctype = k;
- }
- }
- else
- {
- if (console_parse_partref(console4, &i, console_error)
- && console_parse_type(console5, &j, console_error))
- {
- parts[i].ctype = j;
- }
- }
- }
- if (strcmp(console3, "vx")==0)
- {
- if (strcmp(console4, "all")==0)
- {
- f = atof(console5);
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type)
- parts[i].vx = f;
- }
- }
- else if (console_parse_type(console4, &j, console_error))
- {
- f = atof(console5);
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type == j)
- parts[i].vx = f;
- }
- }
- else
- {
- if (console_parse_partref(console4, &i, console_error))
- {
- f = atof(console5);
- parts[i].vx = f;
- }
- }
- }
- if (strcmp(console3, "vy")==0)
- {
- if (strcmp(console4, "all")==0)
- {
- f = atof(console5);
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type)
- parts[i].vy = f;
- }
- }
- else if (console_parse_type(console4, &j, console_error))
- {
- f = atof(console5);
- for (i=0; i<NPART; i++)
- {
- if (parts[i].type == j)
- parts[i].vy = f;
- }
- }
- else
- {
- if (console_parse_partref(console4, &i, console_error))
- {
- f = atof(console5);
- parts[i].vy = f;
- }
- }
- }
- }
- else
- strcpy(console_error, "Invalid Command");
- }
- return 1;
-}
+} \ No newline at end of file