I am not able to save the addresses for pointers, or something like that. I forgot. But I ended up having to search for the id/flag numbers.Code:case 10: ofstream save; ifstream load; int choice; int weapon_id=0; //for save function int scroll1_id=0; int scroll2_id=0; int scroll3_id=0; int room_id=0; ROOM* search_room; SCROLL* ptemp_room; WEAPON* ptemp_room1; int room_scroll_id; cout<<"1. Save"<<endl; cout<<"2. Load"<<endl; cout<<"3. Back"<<endl; cout<<"Selection: "; cin>>choice; if(choice==1) { cout<<endl<<"Saving"<<flush; Sleep(400); cout<<"."<<flush; Sleep(400); cout<<"."<<flush; Sleep(400); cout<<"."<<flush; Sleep(400); cout<<"."<<flush; Sleep(400); cout<<"."<<flush; Sleep(400); cout<<"."<<flush; cout<<"(Hit any key to continue)"<<flush; save.open("player.txt", ios::trunc); save<<main.name<<"\n"; save<<main.health<<"\n"; save<<main.max_health<<"\n"; save<<main.speed<<"\n"; save<<main.strength<<"\n"; save<<main.magic<<"\n"; save<<main.energy<<"\n"; save<<main.lvl<<"\n"; save<<main.exp_needed<<"\n"; save<<main.gold<<"\n"; save<<main.scrollcount<<"\n"; save<<main.to_hit<<"\n"; save<<main.ac<<"\n"; save<<level_up_count<<"\n"; save<<current_weapon->id<<"\n"; save<<current_room->id<<"\n"; if(current_scroll1!=NULL) save<<current_scroll1->id<<"\n"; else save<<0<<"\n"; if(current_scroll2!=NULL) save<<current_scroll2->id<<"\n"; else save<<0<<"\n"; if(current_scroll3!=NULL) save<<current_scroll3->id<<"\n"; else save<<0<<"\n"; search_room=&chamber; do { save<<search_room->flag<<"\n"; search_room=search_room->next; }while(search_room!=&chamber); search_room=&chamber; do { ptemp_room=search_room->scroll; if(ptemp_room!=NULL) { room_scroll_id=ptemp_room->id; save<<ptemp_room->id<<"\n"; } else if(ptemp_room==NULL) { save<<0<<"\n"; } ptemp_room1=search_room->weapon; save<<ptemp_room1->id<<"\n"; search_room=search_room->next; }while(search_room!=&chamber); } else if(choice==2) { cout<<endl<<"Loading"<<flush; Sleep(400); cout<<"."<<flush; Sleep(400); cout<<"."<<flush; Sleep(400); cout<<"."<<flush; Sleep(400); cout<<"."<<flush; Sleep(400); cout<<"."<<flush; Sleep(400); cout<<"."<<flush; cout<<"(Hit any key to continue)"<<flush; load.open("player.txt"); int count=1; int id[1000]; SCROLL* search_scroll; WEAPON* search_weapon; load>>main.name; load>>main.health; load>>main.max_health; load>>main.speed; load>>main.strength; load>>main.magic; load>>main.energy; load>>main.lvl; load>>main.exp_needed; load>>main.gold; load>>main.scrollcount; load>>main.to_hit; load>>main.ac; load>>level_up_count; load>>weapon_id; load>>room_id; load>>scroll1_id; load>>scroll2_id; load>>scroll3_id; search_room=&chamber; do { load>>search_room->flag; search_room=search_room->next; }while(search_room!=&chamber); search_room=&chamber; do { load>>id[count]; count++; load>>id[count]; count++; search_room=search_room->next; }while(search_room!=&chamber); for(int i=1;i<=(count-1);i+=2) { search_scroll=&fireball; do { if(id[count]==search_scroll->id) search_room->scroll=search_scroll; search_scroll=search_scroll->next; }while(search_scroll!=&fireball); search_room=search_room->next; } search_room=&chamber; for(i=1;i<=(count-1);i+=2) { search_weapon=† do { if(id[count]==search_weapon->id) search_room->weapon=search_weapon; search_weapon=search_weapon->next; }while(search_weapon!=&dagger); search_room=search_room->next; } search_weapon=† do { if(search_weapon->id==weapon_id) current_weapon=search_weapon; search_weapon=search_weapon->next; }while(search_weapon!=&dagger); search_room=&chamber; do { if(search_room->id==room_id) current_room=search_room; search_room=search_room->next; }while(search_room!=&chamber); search_scroll=&fireball; do { if(search_scroll->id==scroll1_id) current_scroll1=search_scroll; else if(search_scroll->id==scroll2_id) current_scroll2=search_scroll; else if(search_scroll->id==scroll3_id) current_scroll3=search_scroll; search_scroll=search_scroll->next; }while(search_scroll!=&fireball); }