--- src/client/cl_team.c (revision 7689) +++ src/client/cl_team.c (working copy) @@ -904,40 +904,47 @@ /** * @brief */ -extern void CL_UpdateHireVar (void) +extern void CL_UpdateHireVar (aircraft_t *aircraft) { int i, p; int hired_in_base; - aircraft_t *aircraft = NULL; employee_t *employee = NULL; + base_t *base = NULL; +#if 0 assert(baseCurrent); assert((baseCurrent->aircraftCurrent >= 0) && (baseCurrent->aircraftCurrent < baseCurrent->numAircraftInBase)); aircraft = &baseCurrent->aircraft[baseCurrent->aircraftCurrent]; - Cvar_Set("mn_hired", va(_("%i of %i"), baseCurrent->teamNum[baseCurrent->aircraftCurrent], aircraft->size)); +#endif + assert (aircraft); + base = aircraft->homebase; + assert (base); - hired_in_base = E_CountHired(baseCurrent, EMPL_SOLDIER); + Cvar_Set("mn_hired", va(_("%i of %i"), base->teamNum[aircraft->idxInBase], aircraft->size)); + + Com_Printf("CL_UpdateHireVar()... aircraft idx: %i, homebase: %s\n", aircraft->idx, base->name); + hired_in_base = E_CountHired(base, EMPL_SOLDIER); /* update curTeam list */ for (i = 0, p = 0; i < hired_in_base; i++) { - employee = E_GetHiredEmployee(baseCurrent, EMPL_SOLDIER, -(i+1)); + employee = E_GetHiredEmployee(base, EMPL_SOLDIER, -(i+1)); if (!employee) Sys_Error("CL_UpdateHireVar: Could not get employee %i\n", i); if (CL_SoldierInAircraft(employee->idx, aircraft->idx)) { - baseCurrent->curTeam[p] = &employee->chr; + base->curTeam[p] = &employee->chr; p++; } } - if (p != baseCurrent->teamNum[baseCurrent->aircraftCurrent]) + if (p != base->teamNum[aircraft->idxInBase]) Sys_Error("CL_UpdateHireVar: SoldiersInBase: %i, teamNum[%i]: %i, p: %i\n", hired_in_base, - baseCurrent->aircraftCurrent, - baseCurrent->teamNum[baseCurrent->aircraftCurrent], + aircraft->idxInBase, + base->teamNum[aircraft->idxInBase], p); for (; p < MAX_ACTIVETEAM; p++) - baseCurrent->curTeam[p] = NULL; + base->curTeam[p] = NULL; }