summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon <simon@hardwired.org.uk>2011-02-21 16:24:03 (GMT)
committer Simon <simon@hardwired.org.uk>2011-02-21 16:24:03 (GMT)
commit383eaff5b221c5e1d899e256783c4c20805c8c84 (patch)
treec759e41434c30f43c24f4c26728557784fbcf339 /src
parent064579c9e42ef8743ac6c3b08e4250c118fbef3a (diff)
downloadpowder-383eaff5b221c5e1d899e256783c4c20805c8c84.zip
powder-383eaff5b221c5e1d899e256783c4c20805c8c84.tar.gz
Sound and scripts are opt-in, to speed up loading and closing
Diffstat (limited to 'src')
-rw-r--r--src/main.c177
1 files changed, 98 insertions, 79 deletions
diff --git a/src/main.c b/src/main.c
index d014795..3fa2828 100644
--- a/src/main.c
+++ b/src/main.c
@@ -169,7 +169,8 @@ int FPSB = 0;
int MSIGN =-1;
//int CGOL = 0;
//int GSPEED = 1;//causes my .exe to crash..
-int sound_enable;
+int sound_enable = 0;
+int file_script = 0;
sign signs[MAXSIGNS];
@@ -1214,16 +1215,7 @@ int main(int argc, char *argv[])
fmt.samples = 512;
fmt.callback = mixaudio;
fmt.userdata = NULL;
- /* Open the audio device and start playing sound! */
- if ( SDL_OpenAudio(&fmt, NULL) < 0 )
- {
- fprintf(stderr, "Unable to open audio: %s\n", SDL_GetError());
- }
- else
- {
- sound_enable = 1;
- SDL_PauseAudio(0);
- }
+
#ifdef MT
numCores = core_count();
#endif
@@ -1276,6 +1268,24 @@ int main(int argc, char *argv[])
//sdl_scale = 2; //Removed because some displays cannot handle the resolution
hud_enable = 0;
}
+ else if (!strncmp(argv[i], "sound", 5))
+ {
+ /* Open the audio device and start playing sound! */
+ if ( SDL_OpenAudio(&fmt, NULL) < 0 )
+ {
+ fprintf(stderr, "Unable to open audio: %s\n", SDL_GetError());
+ }
+ else
+ {
+ sound_enable = 1;
+ SDL_PauseAudio(0);
+ }
+ }
+ else if (!strncmp(argv[i], "scripts", 5))
+ {
+ file_script = 1;
+ }
+
}
save_presets(0);
@@ -2767,84 +2777,93 @@ int process_command(pixel *vid_buf,char *console,char *console_error) {
}
else if(strcmp(console2, "file")==0 && console3)
{
- 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)
- 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(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)
+ 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(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
+ if(fileread[i] != '\n')
{
- 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] = 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
{
- pch[i-j-tokensize+starty+k] = ycoord[k];
-
+ 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);
}
- 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;
}
- memset(tokens,0,sizeof(tokens));
- m = i+1;
- }
- if(fileread[i] == '\n')
- {
-
- if(do_next)
+ if(fileread[i] == '\n')
{
- if(strcmp(pch,"else")==0)
- do_next = 0;
- else
- do_next = process_command(vid_buf, pch, console_error);
+
+ if(do_next)
+ {
+ if(strcmp(pch,"else")==0)
+ do_next = 0;
+ else
+ do_next = process_command(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;
}
- 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);
}
- //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)
{