00001
00002
00003
00004
00005
00006
00007
00008 #define MODULE_INFO 1
00009
00010 #include "animate.h"
00011
00012
00013
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;
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);
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