diff --git a/src/ui/script_ui.cpp b/src/ui/script_ui.cpp index 9cc7de4d1..586b947f2 100644 --- a/src/ui/script_ui.cpp +++ b/src/ui/script_ui.cpp @@ -546,7 +546,6 @@ local SCM CclDefineUI(SCM list) int i; UI* ui; void* v; - MenuPanel** menupanel; // Get identifier value=gh_car(list); @@ -1086,71 +1085,27 @@ local SCM CclDefineUI(SCM list) // // Panels // - temp=gh_car(list); + value=gh_car(list); list=gh_cdr(list); + if( gh_eq_p(value,gh_symbol2scm("menu-panels")) ) { + sublist=gh_car(list); + list=gh_cdr(list); + while( !gh_null_p(sublist) ) { + MenuPanel** menupanel; - value=gh_car(temp); - temp=gh_cdr(temp); - str=gh_scm2newstr(value,NULL); - menupanel=&ui->MenuPanels; - while( *menupanel ) { - menupanel=&(*menupanel)->Next; + menupanel=&ui->MenuPanels; + while( *menupanel ) { + menupanel=&(*menupanel)->Next; + } + *menupanel=calloc(1,sizeof(**menupanel)); + value=gh_car(sublist); + sublist=gh_cdr(sublist); + (*menupanel)->Ident=gh_scm2newstr(value,NULL); + value=gh_car(sublist); + sublist=gh_cdr(sublist); + (*menupanel)->Panel.File=gh_scm2newstr(value,NULL); + } } - (*menupanel)=calloc(1,sizeof(**menupanel)); - (*menupanel)->Ident=strdup("panel1"); - (*menupanel)->Panel.File=str; - - temp=gh_car(list); - list=gh_cdr(list); - - value=gh_car(temp); - temp=gh_cdr(temp); - str=gh_scm2newstr(value,NULL); - while( *menupanel ) { - menupanel=&(*menupanel)->Next; - } - (*menupanel)=calloc(1,sizeof(**menupanel)); - (*menupanel)->Ident=strdup("panel2"); - (*menupanel)->Panel.File=str; - - temp=gh_car(list); - list=gh_cdr(list); - - value=gh_car(temp); - temp=gh_cdr(temp); - str=gh_scm2newstr(value,NULL); - while( *menupanel ) { - menupanel=&(*menupanel)->Next; - } - (*menupanel)=calloc(1,sizeof(**menupanel)); - (*menupanel)->Ident=strdup("panel3"); - (*menupanel)->Panel.File=str; - - temp=gh_car(list); - list=gh_cdr(list); - - value=gh_car(temp); - temp=gh_cdr(temp); - str=gh_scm2newstr(value,NULL); - while( *menupanel ) { - menupanel=&(*menupanel)->Next; - } - (*menupanel)=calloc(1,sizeof(**menupanel)); - (*menupanel)->Ident=strdup("panel4"); - (*menupanel)->Panel.File=str; - - temp=gh_car(list); - list=gh_cdr(list); - - value=gh_car(temp); - temp=gh_cdr(temp); - str=gh_scm2newstr(value,NULL); - while( *menupanel ) { - menupanel=&(*menupanel)->Next; - } - (*menupanel)=calloc(1,sizeof(**menupanel)); - (*menupanel)->Ident=strdup("panel5"); - (*menupanel)->Panel.File=str; temp=gh_car(list); list=gh_cdr(list); diff --git a/src/ui/ui.cpp b/src/ui/ui.cpp index 672f32e01..223efe8bf 100644 --- a/src/ui/ui.cpp +++ b/src/ui/ui.cpp @@ -364,33 +364,36 @@ local void SaveUi(FILE* file,const UI* ui) ui->Buttons2[i].Width,ui->Buttons2[i].Height); } - fprintf(file, "\n 'cursors '("); - fprintf(file, "\n point %s", ui->Point.Name); - fprintf(file, "\n glass %s", ui->Glass.Name); - fprintf(file, "\n cross %s", ui->Cross.Name); - fprintf(file, "\n yellow %s", ui->YellowHair.Name); - fprintf(file, "\n green %s", ui->GreenHair.Name); - fprintf(file, "\n red %s", ui->RedHair.Name); - fprintf(file, "\n scroll %s", ui->Scroll.Name); + fprintf(file,"\n 'cursors '("); + fprintf(file,"\n point %s", ui->Point.Name); + fprintf(file,"\n glass %s", ui->Glass.Name); + fprintf(file,"\n cross %s", ui->Cross.Name); + fprintf(file,"\n yellow %s", ui->YellowHair.Name); + fprintf(file,"\n green %s", ui->GreenHair.Name); + fprintf(file,"\n red %s", ui->RedHair.Name); + fprintf(file,"\n scroll %s", ui->Scroll.Name); - fprintf(file, "\n arrow-e %s", ui->ArrowE.Name); - fprintf(file, "\n arrow-ne %s", ui->ArrowNE.Name); - fprintf(file, "\n arrow-n %s", ui->ArrowN.Name); - fprintf(file, "\n arrow-nw %s", ui->ArrowNW.Name); - fprintf(file, "\n arrow-w %s", ui->ArrowW.Name); - fprintf(file, "\n arrow-sw %s", ui->ArrowSW.Name); - fprintf(file, "\n arrow-s %s", ui->ArrowS.Name); - fprintf(file, "\n arrow-se %s", ui->ArrowSE.Name); - fprintf(file, ")\n"); + fprintf(file,"\n arrow-e %s", ui->ArrowE.Name); + fprintf(file,"\n arrow-ne %s", ui->ArrowNE.Name); + fprintf(file,"\n arrow-n %s", ui->ArrowN.Name); + fprintf(file,"\n arrow-nw %s", ui->ArrowNW.Name); + fprintf(file,"\n arrow-w %s", ui->ArrowW.Name); + fprintf(file,"\n arrow-sw %s", ui->ArrowSW.Name); + fprintf(file,"\n arrow-s %s", ui->ArrowS.Name); + fprintf(file,"\n arrow-se %s", ui->ArrowSE.Name); + fprintf(file,")\n"); + fprintf(file,"\n 'menu-panels '("); menupanel=ui->MenuPanels; while( menupanel ) { - fprintf(file," (list \"%s\")\n",menupanel->Panel.File); + fprintf(file,"\n %s \"%s\"", + menupanel->Ident,menupanel->Panel.File); menupanel=menupanel->Next; } + fprintf(file,")\n"); - fprintf(file," (list \"%s\")\n",ui->VictoryBackground.File); - fprintf(file," (list \"%s\")",ui->DefeatBackground.File); + fprintf(file,"\n (list \"%s\")",ui->VictoryBackground.File); + fprintf(file,"\n (list \"%s\")",ui->DefeatBackground.File); fprintf(file," )\n\n"); }