Example #1
0
wxString AmeCtrlJobList::OnGetItemText(long item, long column) const{
	if(column==0) return wxString::Format(_T("%d"), item);
	if(item>=(long)wxGetApp().m_jl->count()) return _T("ERR");//TODO lock?
	AmeJob* j = wxGetApp().m_jl->get(item);
	AdbFile *f = j->getAdbFile();
	switch(column){
		//case 0: return wxString::Format(_T("%d"), j->getID());
		case 1: return j->getAbsolutePath();
		case 2: return j->getStatusText();
		case 3: if(f) return f->m_anime->ann; break;
		case 4: if(f) return f->m_episode->epn; break;
		case 5: if(f && f->m_group) return f->m_group->grp; break;
		case 6: if(f) return SPD(f->m_lid); break;
		case 7: if(f) return f->toMds(); break;
	}
	return wxT("N/A");
}
Example #2
0
/**
 * Refresh the view
 */
void TViewBoard::Refresh()
{
  int x, y, i, pos;
  char s[256];
  char tmp[200];
  Int2D v[4];
  double fBestLapSpeed = 0.0;
  int iBestLapCar = 0,
      iFirstCarShown,           // first car shown on the board
      iLastCarShown;            // last car shown on the board

  // leader board
  x = 1; y = BOARD_Y;

  // set iFirstCarShown to see the follow car and min. (iShowCarsBehind) cars behind the car on ViewBoard
  iFirstCarShown = race_data.m_aPosOfCar[m_iFollowCar]-(iMaxCarsShown-m_iShowCarsBehind-1);
  // iFirstCarShown stays same if viewing last (iShowCarsBehind+1) cars, to avoid empty lines when enough cars available
  if(iFirstCarShown > args.m_iNumCar-iMaxCarsShown)
    iFirstCarShown = args.m_iNumCar-iMaxCarsShown;
  // iFirstCarShown should not be less then 0
  if(iFirstCarShown < 0)
    iFirstCarShown = 0;

  iLastCarShown = min(iFirstCarShown+iMaxCarsShown-1,args.m_iNumCar-1);
  for( i=iFirstCarShown ; i<=iLastCarShown; i++ )
  {
    pos = race_data.m_aCarInPos[i];

    int color;
    if( race_data.cars[pos]->out == 1 ) 
      color = oMAGENTA;
    else if( race_data.cars[pos]->out == 2 ) 
      color = oGREEN;
    else if( race_data.cars[pos]->offroad ) 
      color = oWHITE;
    else if( pos == m_iFollowCar )
      color = oYELLOW;
    else if (race_data.cars[pos]->collision_draw) 
      color = oRED;
    else
      color = oBLACK;


    if( pos==m_iFollowCar )
      strcpy(s, ">");
    else 
      strcpy(s, " ");
    
    sprintf(tmp, "  %-9s", drivers[pos]->getName() );
    strcat( s, tmp );

    // Time
    if (race_data.cars[pos]->out == 1) {
      sprintf( tmp, "   out    ");
    } else if (race_data.cars[pos]->out == 2) {
      sprintf( tmp, "   pit    ");
    } else if (i == 0) {
      format_time(race_data.cars[pos]->last_crossing, tmp);
    } else if (race_data.cars[pos]->laps < (race_data.cars[race_data.m_aCarInPos[0]]->laps - 1)) {
      sprintf(tmp, "%2ld lap(s) ", race_data.cars[race_data.m_aCarInPos[0]]->laps - 1 - race_data.cars[pos]->laps);
    } else if (race_data.cars[pos]->laps == race_data.cars[race_data.m_aCarInPos[0]]->laps) {
      format_time(race_data.cars[pos]->last_crossing - race_data.cars[race_data.m_aCarInPos[0]]->last_crossing, tmp);
    } else {
      format_time(race_data.cars[pos]->last_crossing - 
                  race_data.cars[race_data.m_aCarInPos[0]]->last_crossing +
                  race_data.cars[race_data.m_aCarInPos[0]]->lap_time, tmp);
    }

    strcat(s, tmp);

    if(m_bShowMoreInfos)
    {
      sprintf( tmp, "%4d%7.2f%7.2f%4ld+%03ld%4ld%7.2f%7.2f%7.2f%7.2f%3d%4ld%7.2f%6lu%7.2f%5.2f%4ld%7.2f"
        , i+1
        , race_data.cars[pos]->Behind_next
        , race_data.cars[pos]->Ahead_next
        , race_data.cars[pos]->Laps
        , args.m_iNumLap-race_data.cars[pos]->Laps
        , race_data.cars[pos]->Laps_lead
        , SPD(race_data.cars[pos]->xdot, race_data.cars[pos]->ydot) * MPH_FPS
        , race_data.cars[pos]->speed_avg * MPH_FPS
        , race_data.cars[pos]->bestlap_speed * MPH_FPS
        , race_data.cars[pos]->lastlap_speed * MPH_FPS
        , race_data.cars[pos]->Pit_stops
        , race_data.cars[pos]->Last_pit_visit
        , race_data.cars[pos]->Total_pit_time
        , race_data.cars[pos]->damage
        , race_data.cars[pos]->fuel
        , race_data.cars[pos]->fuel_mileage
        , race_data.cars[pos]->projected_laps
        , race_data.cars[pos]->RobotTime / race_data.m_fElapsedTime
      );
    }
    else
    {
      sprintf( tmp, "%4d%7.2f%7.2f%4ld+%03ld%7.2f%7.2f%7.2f%3d%8lu%8.2f%7.2f"
        , i+1
        , race_data.cars[pos]->Behind_next
        , race_data.cars[pos]->Ahead_next
        , race_data.cars[pos]->Laps
        , args.m_iNumLap-race_data.cars[pos]->Laps
        , SPD(race_data.cars[pos]->xdot, race_data.cars[pos]->ydot) * MPH_FPS
        , race_data.cars[pos]->bestlap_speed * MPH_FPS
        , race_data.cars[pos]->lastlap_speed * MPH_FPS
        , race_data.cars[pos]->Pit_stops
        , race_data.cars[pos]->damage
        , race_data.cars[pos]->fuel
        , race_data.cars[pos]->RobotTime / race_data.m_fElapsedTime
      );
    }

    strcat(s, tmp);

    DrawStringOpaque(s, x, y, color );

    v[0].x = x+20; v[0].y = y+2;
    v[1].x = x+20; v[1].y = y+6;
    v[2].x = x+10; v[2].y = y+6;
    v[3].x = x+10; v[3].y = y+2;
    DrawPolyTexture( v, 4, -2.0, 0.0, &(g_ViewManager->m_aBitmapCar[pos]) );
    y += 8;
      
    if( fBestLapSpeed<=race_data.cars[pos]->bestlap_speed)
    {
      iBestLapCar   = pos;
      fBestLapSpeed = race_data.cars[pos]->bestlap_speed;
    }
  }

  // fastest lap + BestView mode
  x=1; y=m_SizeY-8;
  char *mode[] = { "manual Update","any Overtaking", "for Position", "Nobody" };
  sprintf( s, "%10s %6.2f mi/h    %-18s", drivers[iBestLapCar]->getName(), race_data.cars[iBestLapCar]->bestlap_speed * MPH_FPS, mode[g_ViewManager->m_iFollowMode] );
  DrawStringOpaque(s, x+190, y );

  // fps
  sprintf( s, "%7.2f fps", g_ViewManager->m_fFps );
  DrawStringOpaque( s, m_SizeX-88, y );
}