INFO.C

Go to the documentation of this file.
00001 /* file INFO.C */
00002 
00003 // Functions that provide information on the selected actors and
00004 // to update the GRAYED state of the menus and commands so that
00005 // commands that do not apply to the selected actor cannon be
00006 // implemented.
00007 
00008 #define MODULE_INFO 1
00009 
00010 #include "animate.h"
00011 
00012 //
00013 // This is the function that updates the activiity of the menus as necessary
00014 //
00015 void UpdateSelectedActor(BOOL auto_update){
00016  int status,s1;
00017  object   *Op=NULL;
00018  position *Pp=NULL;
00019  align    *Ap=NULL;
00020  size     *Sp=NULL;
00021  HMENU hm;
00022  char infostr[256],infofor[256];
00023  if(SelectedNode == NULL)LoadString(ghinst_main,IDX_MISC_NOACTSEL,infostr,32);
00024  else{
00025    LoadString(ghinst_main,IDX_MISC_ACTSEL,infofor,32);
00026    sprintf(infostr,infofor,SelectedNode->actorname);
00027    if(auto_update)AutoUpdateKeyframerVpos();
00028  }
00029  SendMessage(ghwnd_info,SB_SETTEXT,(WPARAM)0,(LPARAM)infostr);
00030  hm=GetMenu(ghwnd_main);
00031  if(SelectedNode == NULL)s1=1;
00032  else {
00033    s1=0;
00034    GetTimelinesAtFrame(SelectedNode,CurrentFrame,&Op,&Pp,&Ap,&Sp);
00035  }
00036  UpdateRobot(Op);
00037  if(s1 || (SelectedNode->type == CAMERA && SelectedNode == FirstNp))
00038     status=MF_GRAYED; else status=MF_ENABLED;
00039  EnableMenuItem(hm,IDM_ACTOR_DEL_A,status);
00040 
00041  if(s1 || SelectedNode->type != CAMERA)
00042     status=MF_GRAYED; else status=MF_ENABLED;
00043  EnableMenuItem(hm,IDM_ACTOR_ACTCAMERA,status);
00044 
00045  if(s1)status=MF_GRAYED; else status=MF_ENABLED;
00046  EnableMenuItem(hm,IDM_ACTOR_INFO,status);
00047 
00048  if(s1 || Pp == NULL || Pp->lastframe != CurrentFrame ||
00049     (Pp->type != TWEEN && Pp->type != SPLINE))
00050     status=MF_GRAYED; else status=MF_ENABLED;
00051  EnableMenuItem(hm,IDM_ACTOR_TOOL_GRABABS,status);
00052  EnableMenuItem(hm,IDM_TIMELINE_KEY_RESETP,status);
00053  if(s1 || Pp != NULL)
00054     status=MF_GRAYED; else status=MF_ENABLED;
00055  EnableMenuItem(hm,IDM_TIMELINE_LINE_ADDP,status);
00056  if(s1 || Pp == NULL || Pp->lastframe == CurrentFrame ||
00057     (Pp->type != TWEEN && Pp->type != SPLINE))
00058     status=MF_GRAYED; else status=MF_ENABLED;
00059  EnableMenuItem(hm,IDM_TIMELINE_KEY_ADDP,status);
00060 
00061  if(s1 ||
00062     SelectedNode->type == PATH   ||
00063     SelectedNode->type == TARGET ||
00064     Ap == NULL || Ap->lastframe != CurrentFrame ||
00065    (Ap->type != TWEEN && Ap->type != SPLINEA))
00066     status=MF_GRAYED; else status=MF_ENABLED;
00067  EnableMenuItem(hm,IDM_ACTOR_TOOL_ROTATEABS,status);
00068  EnableMenuItem(hm,IDM_TIMELINE_KEY_RESETR,status);
00069  if(s1 || Ap != NULL ||
00070     SelectedNode->type == PATH ||
00071     SelectedNode->type == TARGET)
00072     status=MF_GRAYED; else status=MF_ENABLED;
00073  EnableMenuItem(hm,IDM_TIMELINE_LINE_ADDR,status);
00074  if(s1 || Ap == NULL || Ap->lastframe == CurrentFrame)
00075     status=MF_GRAYED; else status=MF_ENABLED;
00076  EnableMenuItem(hm,IDM_TIMELINE_KEY_ADDR,status);
00077 
00078  if(s1 ||
00079     SelectedNode->type == PATH ||
00080     SelectedNode->type == TARGET ||
00081     Sp == NULL || Sp->lastframe != CurrentFrame)
00082     status=MF_GRAYED; else status=MF_ENABLED;
00083  EnableMenuItem(hm,IDM_ACTOR_TOOL_SIZEABS,status);
00084  EnableMenuItem(hm,IDM_TIMELINE_KEY_RESETX,status);
00085  if(s1 || Sp != NULL ||
00086     SelectedNode->type == PATH ||
00087     SelectedNode->type == TARGET)
00088     status=MF_GRAYED; else status=MF_ENABLED;
00089  EnableMenuItem(hm,IDM_TIMELINE_LINE_ADDX,status);
00090  if(s1 || Sp == NULL || Sp->lastframe == CurrentFrame ||
00091     SelectedNode->type == PATH ||
00092     SelectedNode->type == TARGET)
00093     status=MF_GRAYED; else status=MF_ENABLED;
00094  EnableMenuItem(hm,IDM_TIMELINE_KEY_ADDX,status);
00095 
00096  if(s1 || (SelectedNode->type == CAMERA && SelectedNode == FirstNp))
00097     status=MF_GRAYED; else status=MF_ENABLED;
00098  EnableMenuItem(hm,IDM_ACTOR_RENAME,status);
00099 
00100  if(s1 || SelectedNode->type == CAMERA
00101        || Op != NULL)
00102     status=MF_GRAYED; else status=MF_ENABLED;
00103  EnableMenuItem(hm,IDM_ACTOR_ADD_C,status);
00104 
00105  if(s1 || SelectedNode->type == CAMERA
00106        || Op == NULL)
00107     status=MF_GRAYED; else status=MF_ENABLED;
00108  EnableMenuItem(hm,IDM_ACTOR_DEL_C,status);
00109 
00110  if(s1 || SelectedNode->type != NORMAL || Op == NULL)
00111     status=MF_GRAYED; else status=MF_ENABLED;
00112  EnableMenuItem(hm,IDM_ACTOR_ADD_E,status);
00113 
00114  if(s1 || (SelectedNode->type != NORMAL && SelectedNode->type != ROBOT) || Op == NULL)
00115     status=MF_GRAYED; else status=MF_ENABLED;
00116  EnableMenuItem(hm,IDM_EDIT_MODEL,status);
00117 
00118  if(s1 || (SelectedNode->type != NORMAL && SelectedNode->type != ROBOT) || Op == NULL)
00119     status=MF_GRAYED; else status=MF_ENABLED;
00120  EnableMenuItem(hm,IDM_ACTOR_SWAP,status);
00121  EnableMenuItem(hm,IDM_ACTOR_SWAP_ALL,status);
00122 
00123  if(s1 || SelectedNode->type != PATH || Op == NULL)
00124    status=MF_GRAYED; else status=MF_ENABLED;
00125  EnableMenuItem(hm,IDM_PATH_GRAPH_POSITION,status);
00126  if(s1)status=MF_GRAYED; else status=MF_ENABLED;  // selected actor can have keyfranes shifted
00127  EnableMenuItem(hm,IDM_TIMELINE_SHIFT_ACTOR,status);
00128  EnableMenuItem(hm,IDM_TIMELINE_MOVE_ALLA,status);
00129 }
00130 
00131 void SelectedInfo(void){
00132  if(SelectedNode == NULL){
00133    SendPrgmQuery(IDQ_NOACTORSELECTED,0);
00134  }
00135  else if(SelectedNode->type == CAMERA){
00136    SendPrgmQuery(IDQ_CAMERASELECTED,0);
00137  }
00138  else if(SelectedNode->type == DIRECTOR){
00139    SendPrgmQuery(IDQ_CAMERASELECTED,0); /* should really be director */
00140  }
00141  else ActorInfo(SelectedNode, (short)CurrentFrame);
00142 }
00143 
00144 void SkyInfo(node *Np, short frame){
00145  sky *Op;
00146  int fo=0;
00147  char title[60];
00148  char strng[128];
00149  LoadString(ghinst_main,IDX_MISC_SKYINFORMATION,res_str,256);
00150  strcpy(title,res_str);
00151  if((Op=Np->fsky) != NULL)while(Op != NULL){
00152     if(frame >= Op->firstframe && frame <= Op->lastframe){
00153       if(Op->type == SKYCOLOURED){
00154         LoadString(ghinst_main,IDX_MISC_SKYPLAIN,res_str,256);
00155         strcpy(strng,res_str); fo=1;
00156       }
00157       else if(Op->type == SKYGRADED){
00158         LoadString(ghinst_main,IDX_MISC_SKYGRADED,res_str,256);
00159         strcpy(strng,res_str); fo=1;
00160       }
00161       else if(Op->type == SKYMAPPED){
00162         LoadString(ghinst_main,IDX_MISC_ENVIRONMENT,res_str,256);
00163         sprintf(strng,res_str,Op->name); fo=1;
00164       }
00165       else if(Op->type == SKYCUBE){
00166         LoadString(ghinst_main,IDX_MISC_SKYCUBE,res_str,256);
00167         sprintf(strng,res_str,Op->name); fo=1;
00168       }
00169       else if(Op->type == BACKDROP){
00170         LoadString(ghinst_main,IDX_MISC_BACKDROP,res_str,256);
00171         sprintf(strng,res_str,Op->name); fo=1;
00172       }
00173       else if(Op->type == SKYANIMATED){
00174         LoadString(ghinst_main,IDX_MISC_ANIMBACKDROP,res_str,256);
00175         sprintf(strng,res_str,Op->name); fo=1;
00176       }
00177       break;
00178     }
00179     Op=Op->next;
00180  }
00181  if(fo)MessageBox (NULL,strng,title,
00182     MB_OK | MB_ICONINFORMATION | MB_TASKMODAL);
00183  return;
00184 }
00185 
00186 void SkyCostumeInfo(node *Np, short frame, char *line){
00187  sky *Op;
00188  if((Op=Np->fsky) != NULL)while(Op != NULL){
00189     if(frame >= Op->firstframe && frame <= Op->lastframe){
00190       if(Op->type == SKYCOLOURED){
00191         LoadString(ghinst_main,IDX_MISC_SKYPLAIN,res_str,256);
00192         strcpy(line,res_str);
00193       }
00194       else if(Op->type == SKYGRADED){
00195         LoadString(ghinst_main,IDX_MISC_SKYGRADED,res_str,256);
00196         strcpy(line,res_str);
00197       }
00198       else if(Op->type == SKYMAPPED){
00199         LoadString(ghinst_main,IDX_MISC_ENVIRONMENT,res_str,256);
00200         sprintf(line,res_str,Op->name);
00201       }
00202       else if(Op->type == SKYCUBE){
00203         LoadString(ghinst_main,IDX_MISC_ENVIRONMENT,res_str,256);
00204         sprintf(line,res_str,Op->name);
00205       }
00206       else if(Op->type == BACKDROP){
00207         LoadString(ghinst_main,IDX_MISC_BACKDROP,res_str,256);
00208         sprintf(line,res_str,Op->name);
00209       }
00210       else if(Op->type == SKYANIMATED){
00211         LoadString(ghinst_main,IDX_MISC_ANIMBACKDROP,res_str,256);
00212         sprintf(line,res_str,Op->name);
00213       }
00214       break;
00215     }
00216     Op=Op->next;
00217  }
00218  return;
00219 }
00220 
00221 void DirectorCostumeInfo(node *Np, short frame, char *line){
00222  director *Dp;
00223  if((Dp=Np->fdirector) != NULL)while(Dp != NULL){
00224     if(frame >= Dp->firstframe && frame <= Dp->lastframe){
00225       node *Np;
00226       Np=Dp->ActiveCamera;
00227       LoadString(ghinst_main,IDX_MISC_DIRECTORINFO1,res_str,256);
00228       sprintf(line,"%s %s",res_str,Np->actorname);
00229       break;
00230     }
00231     Dp=Dp->next;
00232  }
00233  return;
00234 }
00235 
00236 void ActorInfo(node *Np, short frame){
00237  object *Op;
00238  int fo=0;
00239  char title[60];
00240  char strng[128],temp[128];
00241  LoadString(ghinst_main,IDX_MISC_MODELINFORMATION,res_str,256);
00242  strcpy(title,res_str);
00243  if((Op=Np->fobj) != NULL)while(Op != NULL){
00244    if(frame >= Op->firstframe && frame <= Op->lastframe){
00245      if(Op->type == NORMAL){
00246         fo=1;
00247         if(Op->morph == QMORPH){
00248           LoadString(ghinst_main,IDX_MISC_NORMALQON,res_str,256);
00249           sprintf(temp,res_str,Op->name);
00250         }
00251         else if(Op->morph != NO){
00252           LoadString(ghinst_main,IDX_MISC_NORMALQOFF,res_str,256);
00253           sprintf(temp,res_str,Op->name);
00254         }
00255         else{
00256           LoadString(ghinst_main,IDX_MISC_NORMALMODEL,res_str,256);
00257           sprintf(temp,res_str,Op->name);
00258         }
00259         if(Op->quick_only){
00260           LoadString(ghinst_main,IDX_MISC_BOXDRAW,res_str,256);
00261           sprintf(strng,res_str,temp);
00262         }
00263         else strcpy(strng,temp);
00264      }
00265      else if(Op->type == ANIMOBJ){
00266         fo=1;
00267         if(Op->morph != NO){
00268           LoadString(ghinst_main,IDX_MISC_ANIMSEQ1,res_str,256);
00269           sprintf(strng,res_str,Op->name);
00270         }
00271         else{
00272           LoadString(ghinst_main,IDX_MISC_ANIMSEQ2,res_str,256);
00273           sprintf(strng,res_str,Op->name);
00274         }
00275      }
00276      else if(Op->type == GROUND){
00277         fo=1;
00278         if(Op->groundtype == PLAIN){
00279           LoadString(ghinst_main,IDX_MISC_GROUNDPLAIN,res_str,256);
00280           strcpy(strng,res_str);
00281         }
00282         else if(Op->groundtype == BRUM || Op->groundtype == TBRUM){
00283           if(Op->groundtype == BRUM){
00284             LoadString(ghinst_main,IDX_MISC_GROUNDMAP,res_str,256);
00285             sprintf(strng,res_str,Op->name);
00286           }
00287           else{
00288            LoadString(ghinst_main,IDX_MISC_GROUNDTILE,res_str,256);
00289             sprintf(strng,res_str,Op->name);
00290           }
00291         }
00292         else if(Op->groundtype == MBRUM){
00293          LoadString(ghinst_main,IDX_MISC_GROUNDMOZAIC,res_str,256);
00294           sprintf(strng,res_str,Op->name);
00295         }
00296         else if(Op->groundtype > 127){
00297           LoadString(ghinst_main,IDX_MISC_GROUNDSHADER,res_str,256);
00298           sprintf(strng,res_str,
00299                   GroundTextList[Op->groundtype-128]);
00300         }
00301      }
00302      else if(Op->type == LIGHT){
00303         fo=1;
00304         if     (Op->lighttype == SPHERE){
00305           LoadString(ghinst_main,IDX_MISC_NORMALLIGHT,res_str,256);
00306           strcpy(strng,res_str);
00307         }
00308         else if(Op->lighttype == NOSHADOW){
00309           LoadString(ghinst_main,IDX_MISC_NOSHADOW,res_str,256);
00310           strcpy(strng,res_str);
00311         }
00312         else if(Op->lighttype == SHADOWONLY){
00313           LoadString(ghinst_main,IDX_MISC_SHADOWONLY,res_str,256);
00314           strcpy(strng,res_str);
00315         }
00316         else if(Op->lighttype == SPOTLIGHT){
00317           LoadString(ghinst_main,IDX_MISC_SPOTLIGHT,res_str,256);
00318           strcpy(strng,res_str);
00319         }
00320      }
00321      else if(Op->type == PARTICLE){ 
00322         fo=1;
00323         LoadString(ghinst_main,IDX_MISC_CSGSPHERE,res_str,256);
00324         strcpy(temp,res_str);
00325      }
00326      else if(Op->type == TARGET){
00327         LoadString(ghinst_main,IDX_MISC_TARGET1,res_str,256);
00328         strcpy(strng,res_str); fo=1;
00329      }
00330      else if(Op->type == IMAGEP){
00331         LoadString(ghinst_main,IDX_MISC_IMAGEPROC,res_str,256);
00332         strcpy(strng,res_str); fo=1;
00333      }
00334      else if(Op->type == PATH){
00335         fo=1;
00336         if     (Op->pathtype == OPEN){
00337           LoadString(ghinst_main,IDX_MISC_OPENPATH1,res_str,256);
00338           strcpy(strng,res_str);
00339         }
00340         else if(Op->pathtype == CLOSED){
00341           LoadString(ghinst_main,IDX_MISC_CLOSEDPATH,res_str,256);
00342           strcpy(strng,res_str);
00343         }
00344      }
00345      else if(Op->type == ROBOT){
00346         fo=1;
00347         if(Op->morph == QMORPH){
00348           LoadString(ghinst_main,IDX_MISC_ROBOT1,res_str,256);
00349           sprintf(strng,res_str,Op->name);
00350         }
00351         else if(Op->morph != NO){
00352           LoadString(ghinst_main,IDX_MISC_ROBOT1,res_str,256);
00353           sprintf(strng,res_str,Op->name);
00354         }
00355         else{
00356           LoadString(ghinst_main,IDX_MISC_ROBOT1,res_str,256);
00357           sprintf(strng,res_str,Op->name);
00358         }
00359      }
00360      break;
00361    }
00362    Op=Op->next;
00363  }
00364  if(fo)MessageBox (NULL,strng,title,
00365     MB_OK | MB_ICONINFORMATION | MB_TASKMODAL);
00366  return;
00367 }
00368 
00369 void CostumeInfo(object *Op, char *line1, char *line2, char *line3){
00370  if(Op->type == NORMAL){
00371    LoadString(ghinst_main,IDX_MISC_COSTUMEI1,res_str,256);
00372    strcpy(line1,res_str);
00373    sprintf(line2,"%s",Op->name);
00374    if(Op->morph == QMORPH){
00375      LoadString(ghinst_main,IDX_MISC_COSTUMEI2,res_str,256);
00376      strcpy(line3,res_str);
00377    }
00378  }
00379  else if(Op->type == ANIMOBJ){
00380    LoadString(ghinst_main,IDX_MISC_COSTUMEI3,res_str,256);
00381    strcpy(line1,res_str);
00382    strcpy(line2,Op->name);
00383    if(Op->morph != NO){
00384      LoadString(ghinst_main,IDX_MISC_COSTUMEI4,res_str,256);
00385      strcpy(line3,res_str);
00386    }
00387  }
00388  else if(Op->type == GROUND){
00389    if(Op->groundtype == PLAIN){
00390      LoadString(ghinst_main,IDX_MISC_COSTUMEI5,res_str,256);
00391      strcpy(line1,res_str);
00392    }
00393    else if(Op->groundtype == BRUM || Op->groundtype == TBRUM){
00394      if(Op->groundtype == BRUM){
00395        LoadString(ghinst_main,IDX_MISC_COSTUMEI6,res_str,256);
00396        sprintf(line1,res_str);
00397      }
00398      else{
00399        LoadString(ghinst_main,IDX_MISC_COSTUMEI7,res_str,256);
00400        sprintf(line1,res_str);
00401      }
00402      sprintf(line2,"%s",Op->name);
00403    }
00404    else if(Op->groundtype == MBRUM){
00405      LoadString(ghinst_main,IDX_MISC_COSTUMEI8,res_str,256);
00406      sprintf(line1,res_str);
00407      sprintf(line2,"%s",Op->name);
00408    }
00409    else if(Op->groundtype > 127){
00410      LoadString(ghinst_main,IDX_MISC_COSTUMEI9,res_str,256);
00411      sprintf(line1,res_str);
00412      sprintf(line2,"%s",GroundTextList[Op->groundtype-128]);
00413    }
00414  }
00415  else if(Op->type == LIGHT){
00416    if     (Op->lighttype == SPHERE){
00417      LoadString(ghinst_main,IDX_MISC_NORMALLIGHT,res_str,256);
00418      strcpy(line1,res_str);
00419    }
00420    else if(Op->lighttype == NOSHADOW){
00421      LoadString(ghinst_main,IDX_MISC_NOSHADOW,res_str,256);
00422      strcpy(line1,res_str);
00423    }
00424    else if(Op->lighttype == SHADOWONLY){
00425      LoadString(ghinst_main,IDX_MISC_SHADOWONLY,res_str,256);
00426      strcpy(line1,res_str);
00427    }
00428    else if(Op->lighttype == SPOTLIGHT){
00429      LoadString(ghinst_main,IDX_MISC_SPOTLIGHT,res_str,256);
00430      strcpy(line1,res_str);
00431    }
00432  }
00433  else if(Op->type == PARTICLE){
00434    LoadString(ghinst_main,IDX_MISC_CSGSPHERE,res_str,256);
00435    strcpy(line1,res_str);
00436  }
00437  else if(Op->type == TARGET){
00438      LoadString(ghinst_main,IDX_MISC_TARGET1,res_str,256);
00439    strcpy(line1,res_str);
00440  }
00441  else if(Op->type == IMAGEP){
00442    LoadString(ghinst_main,IDX_MISC_IMAGEPROC,res_str,256);
00443    strcpy(line1,res_str);
00444  }
00445  else if(Op->type == PATH){
00446    if     (Op->pathtype == OPEN){
00447      LoadString(ghinst_main,IDX_MISC_OPENPATH1,res_str,256);
00448      strcpy(line1,res_str);
00449    }
00450    else if(Op->pathtype == CLOSED){
00451      LoadString(ghinst_main,IDX_MISC_CLOSEDPATH,res_str,256);
00452      strcpy(line1,res_str);
00453    }
00454  }
00455  else if(Op->type == ROBOT){
00456    LoadString(ghinst_main,IDX_MISC_ROBOT3,res_str,256);
00457    sprintf(line1,res_str," ");
00458    sprintf(line2,"%s",Op->name);
00459    if(Op->morph == QMORPH){
00460      LoadString(ghinst_main,IDX_MISC_COSTUMEI10,res_str,256);
00461      strcpy(line3,res_str);
00462    }
00463    else{
00464      LoadString(ghinst_main,IDX_MISC_COSTUMEI11,res_str,256);
00465      if(Op->morph != NO)strcpy(line3,res_str);
00466    }
00467  }
00468 }
00469 
00470 void PositionInfo(node *Np, short frame){
00471  position *Op;
00472  int fo=0;
00473  char title[64];
00474  char strng[256];
00475  LoadString(ghinst_main,IDX_MISC_POSITIONINFO,res_str,256);
00476  strcpy(title,res_str);
00477  if((Op=Np->fpos) != NULL)while(Op != NULL){
00478     if(frame >= Op->firstframe && frame <= Op->lastframe){
00479       fo=1;
00480       if(Op->type == TWEEN){
00481         LoadString(ghinst_main,IDX_MISC_POSITIONTWEEN,res_str,256);
00482         strcpy(strng,res_str);
00483       }
00484       else if(Op->type == SPLINE){
00485         LoadString(ghinst_main,IDX_MISC_POSITIONSPLINE,res_str,256);
00486         strcpy(strng,res_str);
00487       }
00488       else if(Op->type == FOLLOW){
00489         LoadString(ghinst_main,IDX_MISC_POSITIONINFO1,res_str,256);
00490         sprintf(strng,res_str,Op->onpath->actorname);
00491       }
00492       else if(Op->type == FOLLOWOFF){
00493         LoadString(ghinst_main,IDX_MISC_POSITIONINFO2,res_str,256);
00494         sprintf(strng,res_str,Op->onpath->actorname);
00495       }
00496       else if(Op->type == FOLLOWON){
00497         LoadString(ghinst_main,IDX_MISC_POSITIONINFO3,res_str,256);
00498         sprintf(strng,res_str,Op->onpath->actorname);
00499       }
00500       else if(Op->type == FOLLOWAT){
00501         LoadString(ghinst_main,IDX_MISC_POSITIONINFO4,res_str,256);
00502         sprintf(strng,res_str,Op->onpath->actorname);
00503       }
00504       break;
00505     }
00506     Op=Op->next;
00507  }
00508  if(fo)MessageBox (NULL,strng,title,
00509     MB_OK | MB_ICONINFORMATION | MB_TASKMODAL);
00510  return;
00511 }
00512 
00513 void AlignInfo(node *Np, short frame){
00514  align *Op;
00515  int fo=0;
00516  char title[60];
00517  char strng[256];
00518  LoadString(ghinst_main,IDX_MISC_ROTATIONINFO,res_str,256);
00519  strcpy(title,res_str);
00520  if((Op=Np->fali) != NULL)while(Op != NULL){
00521     if(frame >= Op->firstframe && frame <= Op->lastframe){
00522       fo=1;
00523       if(Op->type == TWEEN){
00524         LoadString(ghinst_main,IDX_MISC_ROTATIONTWEEN,res_str,256);
00525         strcpy(strng,res_str);
00526       }
00527       else if(Op->type == TOPATH){
00528         LoadString(ghinst_main,IDX_MISC_ROTATIONALIGN,res_str,256);
00529         sprintf(strng,res_str,Op->topath->actorname);
00530       }
00531       else if(Op->type == TRACK){
00532         LoadString(ghinst_main,IDX_MISC_ROTATIONLOOK,res_str,256);
00533         sprintf(strng,res_str,Op->topath->actorname);
00534       }
00535       else if(Op->type == COPY){
00536         LoadString(ghinst_main,IDX_MISC_ROTATIONCOPY,res_str,256);
00537         sprintf(strng,res_str,Op->topath->actorname);
00538       }
00539       else if(Op->type == SPLINEA){
00540         LoadString(ghinst_main,IDX_MISC_ROTATIONACCEL,res_str,256);
00541         strcpy(strng,res_str);
00542       }
00543       break;
00544     }
00545     Op=Op->next;
00546  }
00547  if(fo)MessageBox (NULL,strng,title,
00548     MB_OK | MB_ICONINFORMATION | MB_TASKMODAL);
00549  return;
00550 }
00551 
00552 void SizeInfo(node *Np, short frame){
00553  size *Op;
00554  int fo=0;
00555  char title[60];
00556  char strng[128];
00557  LoadString(ghinst_main,IDX_MISC_SCALEINFO,res_str,256);
00558  strcpy(title,res_str);
00559  if((Op=Np->fsiz) != NULL)while(Op != NULL){
00560     if(frame >= Op->firstframe && frame <= Op->lastframe){
00561       fo=1;
00562       if(Np->type == LIGHT){
00563         LoadString(ghinst_main,IDX_MISC_CONEANGLE,res_str,256);
00564         sprintf(strng,res_str,Op->Sx,Op->Sy);
00565       }
00566       else{
00567         LoadString(ghinst_main,IDX_MISC_SCALEWIDTH,res_str,256);
00568          sprintf(strng,res_str,Op->Sx,Op->Sy,Op->Sz);
00569       }
00570       break;
00571     }
00572     Op=Op->next;
00573  }
00574  if(fo)MessageBox (NULL,strng,title,
00575     MB_OK | MB_ICONINFORMATION | MB_TASKMODAL);
00576  return;
00577 }
00578 

Generated on Sun Apr 27 14:20:09 2014 for OpenFX by  doxygen 1.5.6