/* * return next girl in the sorted list */ sGirl *cScreenGirlDetails::get_next_girl() { sGirl *next_girl = 0; g_LogFile.write("Where is the girl??"); if (g_Clinic.GetGirlsCurrentBrothel(selected_girl) != -1) { g_LogFile.write("She is in the Clinic"); next_girl = g_Clinic.GetGirl(0, g_Clinic.GetGirlPos(0, selected_girl) + 1); } else if (g_Studios.GetGirlsCurrentBrothel(selected_girl) != -1) { g_LogFile.write("She is in the Studio"); next_girl = g_Studios.GetGirl(0, g_Studios.GetGirlPos(0, selected_girl) + 1); } else if (g_Arena.GetGirlsCurrentBrothel(selected_girl) != -1) { g_LogFile.write("She is in the Arena"); next_girl = g_Arena.GetGirl(0, g_Arena.GetGirlPos(0, selected_girl) + 1); } else if (g_Centre.GetGirlsCurrentBrothel(selected_girl) != -1) { g_LogFile.write("She is in the Centre"); next_girl = g_Centre.GetGirl(0, g_Centre.GetGirlPos(0, selected_girl) + 1); } else if (g_House.GetGirlsCurrentBrothel(selected_girl) != -1) { g_LogFile.write("She is in the House"); next_girl = g_House.GetGirl(0, g_House.GetGirlPos(0, selected_girl) + 1); } else if (g_Farm.GetGirlsCurrentBrothel(selected_girl) != -1) { g_LogFile.write("She is in the Farm"); next_girl = g_Farm.GetGirl(0, g_Farm.GetGirlPos(0, selected_girl) + 1); } else { if (selected_girl->m_DayJob == JOB_INDUNGEON) { g_LogFile.write("She is in the Dungeon"); next_girl = g_Brothels.GetDungeon()->GetGirl(g_Brothels.GetDungeon()->GetGirlPos(selected_girl) + 1)->m_Girl; } else { g_LogFile.write("She is in a Brothel"); next_girl = g_Brothels.GetGirl(g_CurrBrothel, g_Brothels.GetGirlPos(g_CurrBrothel, selected_girl) + 1); } } return next_girl; }
/* * the selected girl is to be removed from the current list; returns next selected girl */ sGirl *cScreenGirlDetails::remove_selected_girl() { sGirl *next_girl = 0; if (cycle_girls.size() == 0) { return 0; } int cur_id = cycle_girls[cycle_pos]; cycle_girls.erase(cycle_girls.begin() + cycle_pos); // remove her if (cycle_pos >= (int)cycle_girls.size()) { // if this girl was the last in the list, move list position -1 if possible if (cycle_pos > 0) cycle_pos--; else // or, maybe we have no more girls in the list return next_girl; } if (selected_girl->m_DayJob == JOB_INDUNGEON) next_girl = g_Brothels.GetDungeon()->GetGirl(cycle_girls[cycle_pos])->m_Girl; else if (selected_girl->m_InHouse) next_girl = g_House.GetGirl(0, cycle_girls[cycle_pos]); else if (selected_girl->m_InFarm) next_girl = g_Farm.GetGirl(0, cycle_girls[cycle_pos]); else if (selected_girl->m_InClinic) next_girl = g_Clinic.GetGirl(0, cycle_girls[cycle_pos]); else if (selected_girl->m_InCentre) next_girl = g_Centre.GetGirl(0, cycle_girls[cycle_pos]); else if (selected_girl->m_InArena) next_girl = g_Arena.GetGirl(0, cycle_girls[cycle_pos]); else if (selected_girl->m_InStudio) next_girl = g_Studios.GetGirl(0, cycle_girls[cycle_pos]); else next_girl = g_Brothels.GetGirl(g_CurrBrothel, cycle_girls[cycle_pos]); for (int i = cycle_girls.size(); i--> 0;) { // all girls with ID higher than removed girl need their ID reduced if (cycle_girls[i] > cur_id) cycle_girls[i]--; } return next_girl; }