I'm using AGS 2.7, and I've written a save game script off of Proskrito's MI2 template. It's been upgraded, and it works, save for a few issues:
--label on Savetext GUI is always 1
--Will only save to slot 1
I figure it's a problem with lstSAVE/REST.Selectedindex, but I'm out of things to change.
Here is the script:
if (interface == SAVE) {
int index;
lstSAVE.SelectedIndex = index;
if (button == 0) {gSave.Visible = false; //cancel
gSavetext.Visible = false;
}
if (button == 1) {int slist; //listbox
StrFormat(buffer, "%d", index+1);
lblNUM.SetText(buffer);
if (GetSaveSlotDescription(index+100,buffer)==0) StrCopy(buffer,"");
txtSAVE.SetText(buffer);
slist=75+((index-GStopsaveitem)*(DEFAULT_FONT_HEIGHT+2));
if (index<9) txtSAVE.SetPosition(12, 0);
else txtSAVE.SetPosition(18, 0);
gSavetext.SetPosition(79, slist);
gSavetext.Visible = true;
}
if (button == 2 && index>=0) { //save game
txtSAVE.GetText(buffer);
gSave.Visible = false;
gSavetext.Visible = false;
SaveGameSlot(index+100, buffer);
}
if (button == 3){//scroll up
gSavetext.Visible = false;
lstSAVE.SelectedIndex = -1;
if (GStopsaveitem<5) GStopsaveitem=0;
else GStopsaveitem-=5;
lstSAVE.TopItem = GStopsaveitem;
}
if (button == 4 && GStopsaveitem<90){ //scroll down
gSavetext.Visible = false;
lstSAVE.SelectedIndex = -1;
GStopsaveitem+=5;
lstSAVE.TopItem = GStopsaveitem;
}
}
if (interface == SAVETEXT){
int index2;
lstSAVE.SelectedIndex = index2;
if (button == 0){ //write save name
txtSAVE.GetText(buffer);
gSave.Visible = false;
gSavetext.Visible = false;
SaveGameSlot(index2+100,buffer);
}
if (IsButtonDown(RIGHT)) gSavetext.Visible = false; //turn off GUI
}
if (interface == LOAD) {
if (button ==4) gLoad.Visible = false; //cancel
if (button ==2){ //click on listbox item
int index3;
lstREST.SelectedIndex = index3;
if (GetSaveSlotDescription(index3 + 100, buffer)==1) { //if saved games exist
gLoad.Visible = false;
RestoreGameSlot(index3+100);
}
}
if (button == 0){ //scroll up
if (GStopsaveitem<5) GStopsaveitem=0;
else GStopsaveitem-=5;
lstREST.TopItem = GStopsaveitem;
}
if (button == 1 && GStopsaveitem<90) { //scroll down
GStopsaveitem+=5;
lstREST.TopItem = GStopsaveitem;
}
}
Any help is very appreciated, thank you.
~~Bernie