home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 51 / PCGamer51_17Demos.iso / games / CM / CyclingManagerDemoCangas.exe / CyclingManagerDemo / scripts / inrace / race_events_time_trial.cnc < prev    next >
Text File  |  2001-05-20  |  8KB  |  223 lines

  1.  
  2. func void Object_InRaceEvents_Time_Trial_Create()
  3. {
  4.     oInRaceEvents_Time_Trial.pThis=GetParserComponent();
  5.  
  6.     SetComponentNumber(4);
  7.  
  8.  
  9.     oInRaceEvents_Time_Trial.iCurrentCyclistName=InitContainer(tFnt_20);
  10.     SetComponentPosition(oInRaceEvents_Time_Trial.iCurrentCyclistName,0,5);
  11.  
  12.     
  13.     oInRaceEvents_Time_Trial.iCurrentCyclistTime=InitContainer(tFnt_20);
  14.     SetComponentPosition(oInRaceEvents_Time_Trial.iCurrentCyclistTime,650,5);
  15.     
  16.  
  17.     oInRaceEvents_Time_Trial.iNextCyclistName=InitContainer(tFontArialItalique);
  18.     SetComponentPosition(oInRaceEvents_Time_Trial.iNextCyclistName,0,30);
  19.  
  20.  
  21.     oInRaceEvents_Time_Trial.iNextCyclistTime=InitContainer(tFontArialItalique);
  22.     SetComponentPosition(oInRaceEvents_Time_Trial.iNextCyclistTime,650,30);
  23.     
  24.     AutoResize();
  25. }
  26.  
  27.  
  28. func void Object_InRaceEvents_Time_Trial_Update()
  29. {
  30.     var component pold;
  31.     var i32x boucle;
  32.     var boolx bTest;
  33.     var i32x iNextSprint,iCyclistId,iNbCyclistRecorded,iNextCyclistID;
  34.     var f32x fCurrentCyclistTime;
  35.  
  36.     iCyclistId=GetActiveCyclistPreRaceID();
  37.     iNextSprint=GetCyclistNextSprintIndex(iCyclistId);
  38.  
  39.     if (iNextSprint<GetNbSprints())
  40.     {
  41.         iNbCyclistRecorded=GetSprintNumRecordedCyclists(iNextSprint);
  42.         if(GetCyclistStartRaceTime(iCyclistId)>0.0)
  43.         {
  44.             fCurrentCyclistTime=GetCyclistInRaceTime(iCyclistId)-GetCyclistStartRaceTime(iCyclistId);
  45.         }
  46.         else
  47.         {
  48.             fCurrentCyclistTime=0;
  49.         }
  50.         var szx szName;
  51.     
  52.     /*    print("temps cycliste courant: ");
  53.         print(szName);
  54.         print("\n");*/
  55.  
  56.         bTest=true;
  57.         boucle=0;
  58.         //recherche du cycliste suivant
  59.         
  60.         while (boucle<iNbCyclistRecorded && bTest)
  61.         {
  62.             if(    fCurrentCyclistTime>GetSprintCyclistTime(iNextSprint,boucle) )
  63.                 boucle=boucle+1;
  64.             else
  65.             {
  66.                 bTest=false;
  67.             }
  68.         }
  69.         
  70.  
  71.         
  72.         
  73.         pold=GetParserComponent();
  74.         SetParserComponent(oInRaceEvents_Time_Trial.pThis);    
  75.         
  76.         
  77.     
  78.         szName = Join_GetStringFromSortedIndex(g_stInraceJoins.m_iCyclist_FirstName,iCyclistId);
  79.         szName = strcat(szName," ");
  80.         szName = strcat(szName,Join_GetStringFromSortedIndex(g_stInraceJoins.m_iCyclist_LastName,iCyclistId));
  81.         SetContainerText(oInRaceEvents_Time_Trial.iCurrentCyclistName,szName);
  82.         ResizeComponent(oInRaceEvents_Time_Trial.iCurrentCyclistName);
  83.         
  84.         szName=GetHourMinSecFromTime(fCurrentCyclistTime);
  85.  
  86.         SetContainerText(oInRaceEvents_Time_Trial.iCurrentCyclistTime,szName);
  87.         ResizeComponent(oInRaceEvents_Time_Trial.iCurrentCyclistTime);
  88.         SetComponentPositionX(oInRaceEvents_Time_Trial.iCurrentCyclistTime,650-GetComponentWidth(oInRaceEvents_Time_Trial.iCurrentCyclistTime));
  89.         
  90.         
  91.         if (boucle<iNbCyclistRecorded)
  92.         {
  93.             
  94.             iNextCyclistID=GetSprintCyclistPreRaceIndex(iNextSprint,boucle);
  95.             szName = Join_GetStringFromSortedIndex(g_stInraceJoins.m_iCyclist_FirstName,iNextCyclistID);
  96.             szName = strcat(szName," ");
  97.             szName = strcat(szName,Join_GetStringFromSortedIndex(g_stInraceJoins.m_iCyclist_LastName,iNextCyclistID));
  98.             SetContainerText(oInRaceEvents_Time_Trial.iNextCyclistName,szName);
  99.             
  100.             
  101.             
  102.             szName=GetFullHMSFromTime(GetSprintCyclistTime(iNextSprint,boucle));
  103.             SetContainerText(oInRaceEvents_Time_Trial.iNextCyclistTime,szName);
  104.             ResizeComponent(oInRaceEvents_Time_Trial.iNextCyclistTime);
  105.             SetComponentPositionX(oInRaceEvents_Time_Trial.iNextCyclistTime,650-GetComponentWidth(oInRaceEvents_Time_Trial.iNextCyclistTime));
  106.         }
  107.         else
  108.         {
  109.             SetContainerText(oInRaceEvents_Time_Trial.iNextCyclistName,g_szNull);
  110.             SetContainerText(oInRaceEvents_Time_Trial.iNextCyclistTime,g_szNull);
  111.             
  112.         }
  113.         
  114.         
  115.         SetParserComponent(pold);
  116.     }
  117.     else
  118.     {
  119.         pold=GetParserComponent();
  120.         SetParserComponent(oInRaceEvents_Time_Trial.pThis);    
  121.  
  122.         var szx szName;
  123.         szName = Join_GetStringFromSortedIndex(g_stInraceJoins.m_iCyclist_FirstName,iCyclistId);
  124.         szName = strcat(szName," ");
  125.         szName = strcat(szName,Join_GetStringFromSortedIndex(g_stInraceJoins.m_iCyclist_LastName,iCyclistId));
  126.         SetContainerText(oInRaceEvents_Time_Trial.iCurrentCyclistName,szName);
  127.         SetContainerText(oInRaceEvents_Time_Trial.iNextCyclistName,g_szNull);
  128.         SetContainerText(oInRaceEvents_Time_Trial.iNextCyclistTime,g_szNull);
  129.         SetContainerText(oInRaceEvents_Time_Trial.iCurrentCyclistTime,g_szNull);
  130.                 
  131.         SetParserComponent(pold);
  132.  
  133.     }
  134. }
  135.  
  136. func i32x Object_InRaceEvents_Time_Trial_Event()
  137. {
  138.     return 1;
  139. }
  140.  
  141. func void Object_InRaceEvents_Time_Trial_InitMembers ()
  142. {
  143.     oInRaceEvents_Time_Trial.oFunc.pcreate=Object_InRaceEvents_Time_Trial_Create;
  144.     oInRaceEvents_Time_Trial.oFunc.pevent=Object_InRaceEvents_Time_Trial_Event;
  145. }
  146.  
  147.  
  148.  
  149. func void Object_InRaceEvents_Team_Time_Trial_Update()
  150. {
  151.     var i32x iCyclistID,iNbCyclists,iTeamID,iNextSprint;
  152.     var i32x boucle,boucle2,boucle3;
  153.     var f32x iPercentageDone,fCyclistSprintTime;
  154.     var szx szName;
  155.     
  156.     iTeamID=GetCyclistPreRaceTeamID(GetActiveCyclistPreRaceID());
  157.     
  158.     iNbCyclists=GetTeamNumCyclists(iTeamID);
  159.     if(iNbCyclists>0)
  160.     {
  161.         if (iNbCyclists>=5)
  162.             iCyclistID=GetInTeamSortedCyclistPreraceIndex(iTeamID,4);
  163.         else
  164.         {
  165.             iCyclistID=GetInTeamSortedCyclistPreraceIndex(iTeamID,iNbCyclists-1);
  166.         }
  167.         fCyclistSprintTime=GetCyclistInRaceTime(iCyclistID)-GetCyclistStartRaceTime(iCyclistID);
  168.         if (GetCyclistStartRaceTime(iCyclistID)==0)
  169.             fCyclistSprintTime=0;
  170.         
  171.         
  172.         szName=Join_GetStringFromSortedIndex(g_stInraceJoins.m_iCyclist_LastName,iCyclistID);
  173.         
  174.         var component pold;
  175.         pold=GetParserComponent();
  176.         
  177.         SetParserComponent(oInRaceEvents_Time_Trial.pThis);    
  178.         SetContainerText(oInRaceEvents_Time_Trial.iCurrentCyclistName,Join_GetStringFromSortedIndex(g_stInraceJoins.m_iCyclist_TeamIDName,iTeamID));
  179.         
  180.         
  181.         szName=GetHourMinSecFromTime(fCyclistSprintTime);
  182.         SetContainerText(oInRaceEvents_Time_Trial.iCurrentCyclistTime,szName);
  183.         ResizeComponent(oInRaceEvents_Time_Trial.iCurrentCyclistTime);
  184.         SetComponentPositionX(oInRaceEvents_Time_Trial.iCurrentCyclistTime,650-GetComponentWidth(oInRaceEvents_Time_Trial.iCurrentCyclistTime));
  185.         
  186.         boucle=0;
  187.         //recherche de l'equipe suivante;
  188.         iNextSprint=GetCyclistNextSprintIndex(iCyclistID);
  189.         if (iNextSprint<GetNbSprints())
  190.         {
  191.             while(boucle<oRace.TabSprintClassement[iNextSprint].iNbTeamRecorded-1
  192.                 && fCyclistSprintTime>oRace.Tab_Team_Sprints[iNextSprint].Tab[oRace.TabSprintClassement[iNextSprint].TabSprintClassement[boucle].iTeamID].fSprintTime)
  193.                 boucle=boucle+1;
  194.             
  195.             if(boucle==oRace.TabSprintClassement[iNextSprint].iNbTeamRecorded)
  196.             {
  197.                 SetContainerText(oInRaceEvents_Time_Trial.iNextCyclistName,"");
  198.                 SetContainerText(oInRaceEvents_Time_Trial.iNextCyclistTime,"");
  199.                 
  200.             }
  201.             else
  202.             {
  203.                 szName=Join_GetStringFromSortedIndex(g_stInraceJoins.m_iCyclist_TeamIDName,oRace.TabSprintClassement[iNextSprint].TabSprintClassement[boucle].iTeamID);
  204.                 SetContainerText(oInRaceEvents_Time_Trial.iNextCyclistName,szName);
  205.                 
  206.                 szName=GetFullHMSFromTime(oRace.Tab_Team_Sprints[iNextSprint].Tab[oRace.TabSprintClassement[iNextSprint].TabSprintClassement[boucle].iTeamID].fSprintTime);
  207.                 SetContainerText(oInRaceEvents_Time_Trial.iNextCyclistTime,szName);
  208.                 ResizeComponent(oInRaceEvents_Time_Trial.iNextCyclistTime);
  209.                 SetComponentPositionX(oInRaceEvents_Time_Trial.iNextCyclistTime,650-GetComponentWidth(oInRaceEvents_Time_Trial.iNextCyclistTime));
  210.             }
  211.         }
  212.         else
  213.         {
  214.             SetContainerText(oInRaceEvents_Time_Trial.iNextCyclistName,"");
  215.             SetContainerText(oInRaceEvents_Time_Trial.iNextCyclistTime,"");
  216.         }
  217.         
  218.         SetParserComponent(pold);
  219.     }//if(iNbCyclists>0)
  220.     
  221. }
  222.  
  223.