📄 prompts2.c
字号:
LOADCHOICES("Fill Color (normal,<nnn>) (works with passes=t and =b)");
uvalues[k].type = 's';
if(fillcolor < 0)
strcpy(uvalues[k].uval.sval,s_normal);
else
sprintf(uvalues[k].uval.sval,"%d",fillcolor);
old_fillcolor = fillcolor;
LOADCHOICES("Orbit delay (0 = none)");
uvalues[k].type = 'i';
uvalues[k].uval.ival = orbit_delay;
/*
LOADCHOICES("Antialiasing (0 to 8)");
uvalues[k].type = 'i';
uvalues[k].uval.ival = AntiAliasing;
*/
oldhelpmode = helpmode;
helpmode = HELPXOPTS;
i = fullscreen_prompt(hdg,k+1,choices,uvalues,0,0,NULL);
helpmode = oldhelpmode;
if (i < 0) {
EXIT_OVLY;
return(-1);
}
/* now check out the results (*hopefully* in the same order <grin>) */
k = -1;
j = 0; /* return code */
usr_stdcalcmode = calcmodes[uvalues[++k].uval.ch.val][0];
if (old_usr_stdcalcmode != usr_stdcalcmode) j = 1;
if (uvalues[++k].uval.ch.val != usr_floatflag) {
usr_floatflag = uvalues[k].uval.ch.val;
j = 1;
}
++k;
maxit = uvalues[k].uval.ival;
if (maxit < 2) maxit = 2;
/* 'maxit' is an int so it is always <= 32767, MCP 12-3-91
if (maxit > 32767) maxit = 32767;
*/
if (maxit != old_maxit) j = 1;
if(strncmp(strlwr(uvalues[++k].uval.sval),s_zmag,4)==0)
inside = -59;
else if(strncmp(strlwr(uvalues[k].uval.sval),s_bof60,5)==0)
inside = -60;
else if(strncmp(strlwr(uvalues[k].uval.sval),s_bof61,5)==0)
inside = -61;
else if(strncmp(strlwr(uvalues[k].uval.sval),s_epscross,3)==0)
inside = -100;
else if(strncmp(strlwr(uvalues[k].uval.sval),s_startrail,4)==0)
inside = -101;
else if(strncmp(strlwr(uvalues[k].uval.sval),s_period,3)==0)
inside = -102;
else if(strncmp(strlwr(uvalues[k].uval.sval),s_maxiter,5)==0)
inside = -1;
else
inside = atoi(uvalues[k].uval.sval);
if (inside != old_inside) j = 1;
if(strncmp(strlwr(uvalues[++k].uval.sval),s_real,4)==0)
outside = -2;
else if(strncmp(strlwr(uvalues[k].uval.sval),s_imag,4)==0)
outside = -3;
else if(strncmp(strlwr(uvalues[k].uval.sval),s_mult,4)==0)
outside = -4;
else if(strncmp(strlwr(uvalues[k].uval.sval),s_sum,4)==0)
outside = -5;
else if(strncmp(strlwr(uvalues[k].uval.sval),s_iter,4)==0)
outside = -1;
else
outside = atoi(uvalues[k].uval.sval);
if (outside != old_outside) j = 1;
strcpy(savename,uvalues[++k].uval.sval);
if (strcmp(savename,prevsavename))
resave_flag = started_resaves = 0; /* forget pending increment */
overwrite = uvalues[++k].uval.ch.val;
soundflag = uvalues[++k].uval.ch.val - 1;
if (soundflag != old_soundflag && (soundflag > 1 || old_soundflag > 1))
j = 1;
LogFlag = uvalues[++k].uval.ival;
if (LogFlag != old_logflag) j = 1;
usr_biomorph = uvalues[++k].uval.ival;
if (usr_biomorph != old_biomorph) j = 1;
decomp[0] = uvalues[++k].uval.ival;
if (decomp[0] != old_decomp) j = 1;
if(strncmp(strlwr(uvalues[++k].uval.sval),s_normal,4)==0)
fillcolor = -1;
else
fillcolor = atoi(uvalues[k].uval.sval);
if (fillcolor != old_fillcolor) j = 1;
orbit_delay = uvalues[++k].uval.ival;
/*
if(AntiAliasing != uvalues[++k].uval.ival) j = 1;
AntiAliasing = uvalues[k].uval.ival;
if(AntiAliasing < 0) AntiAliasing = 0;
if(AntiAliasing > 8) AntiAliasing = 8;
*/
EXIT_OVLY;
return(j);
}
/*
get_toggles2() is similar to get_toggles, invoked by 'y' key
*/
int get_toggles2()
{
static char far hdg[]={" Extended Options\n\
(not all combinations make sense)"};
char far *choices[20];
int oldhelpmode;
struct fullscreenvalues uvalues[25];
int i, j, k;
int old_rotate_lo,old_rotate_hi;
int old_usr_distest,old_distestwidth;
double old_potparam[3],old_inversion[3];
ENTER_OVLY(OVLY_PROMPTS2);
/* fill up the choices (and previous values) arrays */
k = -1;
LOADCHOICES("Look for finite attractor (0=no,>0=yes,<0=phase)");
uvalues[k].type = 'i';
uvalues[k].uval.ch.val = finattract;
LOADCHOICES("Potential Max Color (0 means off)");
uvalues[k].type = 'i';
uvalues[k].uval.ival = old_potparam[0] = potparam[0];
LOADCHOICES(" Slope");
uvalues[k].type = 'd';
uvalues[k].uval.dval = old_potparam[1] = potparam[1];
LOADCHOICES(" Bailout");
uvalues[k].type = 'i';
uvalues[k].uval.ival = old_potparam[2] = potparam[2];
LOADCHOICES(" 16 bit values");
uvalues[k].type = 'y';
uvalues[k].uval.ch.val = pot16bit;
LOADCHOICES("Distance Estimator (0=off, <0=edge, >0=on):");
uvalues[k].type = 'i';
uvalues[k].uval.ival = old_usr_distest = usr_distest;
LOADCHOICES(" width factor:");
uvalues[k].type = 'i';
uvalues[k].uval.ival = old_distestwidth = distestwidth;
LOADCHOICES("Inversion radius or \"auto\" (0 means off)");
LOADCHOICES(" center X coordinate or \"auto\"");
LOADCHOICES(" center Y coordinate or \"auto\"");
k = k - 3;
for (i= 0; i < 3; i++) {
uvalues[++k].type = 's';
if ((old_inversion[i] = inversion[i]) == AUTOINVERT)
sprintf(uvalues[k].uval.sval,"auto");
else
sprintf(uvalues[k].uval.sval,"%g",inversion[i]);
}
LOADCHOICES(" (use fixed radius & center when zooming)");
uvalues[k].type = '*';
LOADCHOICES("Color cycling from color (0 ... 254)");
uvalues[k].type = 'i';
uvalues[k].uval.ival = old_rotate_lo = rotate_lo;
LOADCHOICES(" to color (1 ... 255)");
uvalues[k].type = 'i';
uvalues[k].uval.ival = old_rotate_hi = rotate_hi;
oldhelpmode = helpmode;
helpmode = HELPYOPTS;
i = fullscreen_prompt(hdg,k+1,choices,uvalues,0,0,NULL);
helpmode = oldhelpmode;
if (i < 0) {
EXIT_OVLY;
return(-1);
}
/* now check out the results (*hopefully* in the same order <grin>) */
k = -1;
j = 0; /* return code */
if (uvalues[++k].uval.ch.val != finattract) {
finattract = uvalues[k].uval.ch.val;
j = 1;
}
potparam[0] = uvalues[++k].uval.ival;
if (potparam[0] != old_potparam[0]) j = 1;
potparam[1] = uvalues[++k].uval.dval;
if (potparam[0] != 0.0 && potparam[1] != old_potparam[1]) j = 1;
potparam[2] = uvalues[++k].uval.ival;
if (potparam[0] != 0.0 && potparam[2] != old_potparam[2]) j = 1;
if (uvalues[++k].uval.ch.val != pot16bit) {
pot16bit = uvalues[k].uval.ch.val;
if (pot16bit) { /* turned it on */
if (potparam[0] != 0.0) j = 1;
}
else /* turned it off */
if (dotmode != 11) /* ditch the disk video */
enddisk();
else /* keep disk video, but ditch the fraction part at end */
disk16bit = 0;
}
++k;
usr_distest = (uvalues[k].uval.ival > 32000) ? 32000 : uvalues[k].uval.ival;
if (usr_distest != old_usr_distest) j = 1;
++k;
distestwidth = uvalues[k].uval.ival;
if (usr_distest && distestwidth != old_distestwidth) j = 1;
for (i = 0; i < 3; i++) {
if (uvalues[++k].uval.sval[0] == 'a' || uvalues[k].uval.sval[0] == 'A')
inversion[i] = AUTOINVERT;
else
inversion[i] = atof(uvalues[k].uval.sval);
if (old_inversion[i] != inversion[i]
&& (i == 0 || inversion[0] != 0.0))
j = 1;
}
invert = (inversion[0] == 0.0) ? 0 : 3;
++k;
rotate_lo = uvalues[++k].uval.ival;
rotate_hi = uvalues[++k].uval.ival;
if (rotate_lo < 0 || rotate_hi > 255 || rotate_lo > rotate_hi) {
rotate_lo = old_rotate_lo;
rotate_hi = old_rotate_hi;
}
EXIT_OVLY;
return(j);
}
/* --------------------------------------------------------------------- */
/*
get_view_params() is called from FRACTINT.C whenever the 'v' key
is pressed. Return codes are:
-1 routine was ESCAPEd - no need to re-generate the image.
0 minor variable changed. No need to re-generate the image.
1 View changed. Re-generate the image.
*/
int get_view_params()
{
static char far hdg[]={"View Window Options"};
char far *choices[8];
int oldhelpmode;
struct fullscreenvalues uvalues[25];
int i, k;
float old_viewreduction,old_aspectratio;
int old_viewwindow,old_viewcrop,old_viewxdots,old_viewydots;
ENTER_OVLY(OVLY_PROMPTS2);
stackscreen();
old_viewwindow = viewwindow;
old_viewcrop = viewcrop;
old_viewreduction = viewreduction;
old_aspectratio = finalaspectratio;
old_viewxdots = viewxdots;
old_viewydots = viewydots;
get_view_restart:
/* fill up the previous values arrays */
k = -1;
LOADCHOICES("Preview display? (no for full screen)");
uvalues[k].type = 'y';
uvalues[k].uval.ch.val = viewwindow;
LOADCHOICES("Auto window size reduction factor");
uvalues[k].type = 'f';
uvalues[k].uval.dval = viewreduction;
LOADCHOICES("Final media overall aspect ratio, y/x");
uvalues[k].type = 'f';
uvalues[k].uval.dval = finalaspectratio;
LOADCHOICES("Crop starting coordinates to new aspect ratio?");
uvalues[k].type = 'y';
uvalues[k].uval.ch.val = viewcrop;
LOADCHOICES("Explicit size x pixels (0 for auto size)");
uvalues[k].type = 'i';
uvalues[k].uval.ival = viewxdots;
LOADCHOICES(" y pixels (0 to base on aspect ratio)");
uvalues[k].type = 'i';
uvalues[k].uval.ival = viewydots;
LOADCHOICES("");
uvalues[k].type = '*';
LOADCHOICES("Press F4 to reset view parameters to defaults.");
uvalues[k].type = '*';
oldhelpmode = helpmode; /* this prevents HELP from activating */
helpmode = HELPVIEW;
i = fullscreen_prompt(hdg,k+1,choices,uvalues,0,16,NULL);
helpmode = oldhelpmode; /* re-enable HELP */
if (i < 0) {
viewwindow = old_viewwindow;
viewcrop = old_viewcrop;
viewreduction = old_viewreduction;
finalaspectratio = old_aspectratio;
viewxdots = old_viewxdots;
viewydots = old_viewydots;
unstackscreen();
EXIT_OVLY;
return(-1);
}
if (i == F4) {
viewwindow = viewxdots = viewydots = 0;
viewreduction = 4.2;
viewcrop = 1;
finalaspectratio = screenaspect;
goto get_view_restart;
}
/* now check out the results (*hopefully* in the same order <grin>) */
k = -1;
viewwindow = uvalues[++k].uval.ch.val;
viewreduction = uvalues[++k].uval.dval;
if ((finalaspectratio = uvalues[++k].uval.dval) == 0)
finalaspectratio = screenaspect;
viewcrop = uvalues[++k].uval.ch.val;
viewxdots = uvalues[++k].uval.ival;
viewydots = uvalues[++k].uval.ival;
if (finalaspectratio != old_aspectratio && viewcrop)
aspectratio_crop(old_aspectratio,finalaspectratio);
i = 0;
if (viewwindow != old_viewwindow
|| (viewwindow
&& ( viewreduction != old_viewreduction
|| finalaspectratio != old_aspectratio
|| viewxdots != old_viewxdots
|| (viewydots != old_viewydots && viewxdots) ) ) )
i = 1;
unstackscreen();
EXIT_OVLY;
return(i);
}
/*
get_cmd_string() is called from FRACTINT.C whenever the 'g' key
is pressed. Return codes are:
-1 routine was ESCAPEd - no need to re-generate the image.
0 parameter changed, no need to regenerate
>0 parameter changed, regenerate
*/
int get_cmd_string()
{
int oldhelpmode;
int i;
char cmdbuf[61];
ENTER_OVLY(OVLY_PROMPTS2);
oldhelpmode = helpmode;
helpmode = HELPCOMMANDS;
cmdbuf[0] = 0;
i = field_prompt(0,"Enter command string to use.",NULL,cmdbuf,60,NULL);
helpmode = oldhelpmode;
if (i >= 0 && cmdbuf[0] != 0)
i = cmdarg(cmdbuf, 2);
EXIT_OVLY;
return(i);
}
/* --------------------------------------------------------------------- */
int Distribution = 30, Offset = 0, Slope = 25;
long con;
static char far sf1[] = {"Star Density in Pixels per Star"};
static char far sf2[] = {"Percent Clumpiness"};
static char far sf3[] = {"Ratio of Dim stars to Bright"};
static char far *starfield_prompts[] = {sf1,sf2,sf3};
double starfield_values[4] = {
30.0,100.0,5.0,0.0
};
char GreyFile[] = "altern.map";
int starfield(void)
{
int c;
extern char busy;
busy = 1;
if (starfield_values[0] < 1.0) starfield_values[0] = 1.0;
if (starfield_values[0] > 100.0) starfield_values[0] = 100.0;
if (starfield_values[1] < 1.0) starfield_values[1] = 1.0;
if (starfield_values[1] > 100.0) starfield_values[1] = 100.0;
if (starfield_values[2] < 1.0) starfield_values[2] = 1.0;
if (starfield_values[2] > 100.0) starfield_values[2] = 100.0;
Distribution = (int)(starfield_values[0]);
con = (long)(((starfield_values[1]) / 100.0) * (1L << 16));
Slope = (int)(starfield_values[2]);
if (ValidateLuts(GreyFile) != 0) {
static char far msg[]={"Unable to load ALTERN.MAP"};
stopmsg(0,msg);
busy = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -