/** * @brief Show information about item/aircaft/ugv in the market */ static void BS_ShowInfo_f (void) { const char* itemid; const aircraft_t* aircraft; const ugv_t* ugv; const objDef_t* od; if (cgi->Cmd_Argc() < 2) { cgi->Com_Printf("Usage: %s <item-id>\n", cgi->Cmd_Argv(0)); return; } itemid = cgi->Cmd_Argv(1); if (char const* const rest = Q_strstart(itemid, "aircraft_")) { /* PHALANX aircraft - with aircraft golbal idx */ int idx = atoi(rest); aircraft = AIR_AircraftGetFromIDX(idx); if (!aircraft) { cgi->Com_Printf("Invalid aircraft index!\n"); return; } /** @todo show specialized info about PHALANX aircraft */ BS_MarketAircraftDescription(aircraft->tpl); return; } if (char const* const rest = Q_strstart(itemid, "ugv-")) { /* PHALANX ugv - with unique character number index */ int ucn = atoi(rest); Employee* robot = E_GetEmployeeByTypeFromChrUCN(EMPL_ROBOT, ucn); if (!robot) { cgi->Com_Printf("Invalid UCN for UGV!\n"); return; } /** @todo show specialized info about PHLANX UGVs */ UP_UGVDescription(robot->getUGV()); return; } aircraft = AIR_GetAircraftSilent(itemid); if (aircraft) { BS_MarketAircraftDescription(aircraft->tpl); return; } ugv = cgi->Com_GetUGVByIDSilent(itemid); if (ugv) { UP_UGVDescription(ugv); return; } /* item */ od = INVSH_GetItemByID(cgi->Cmd_Argv(1)); if (od) { if (!BS_IsOnMarket(od)) return; if (od->craftitem.type != MAX_ACITEMS) UP_AircraftItemDescription(od); else cgi->INV_ItemDescription(od); return; } cgi->Com_Printf("Invalid item ID\n"); }