24 |
|
quotes above are from Spaceballs...) |
25 |
|
|
26 |
|
*/ |
27 |
+ |
|
28 |
+ |
StuntDouble::~StuntDouble(){ |
29 |
+ |
map<string, GenericData*>::iterator iter; |
30 |
+ |
|
31 |
+ |
for(iter = properties.begin(); iter != properties.end(); ++iter ){ |
32 |
+ |
delete iter->second; |
33 |
+ |
properties.erase(iter); |
34 |
+ |
} |
35 |
+ |
|
36 |
+ |
} |
37 |
|
|
38 |
|
int StuntDouble::getObjType(){ |
39 |
|
return objType; |
530 |
|
objType ); |
531 |
|
painCave.isFatal = 1; |
532 |
|
simError(); |
533 |
+ |
} |
534 |
+ |
} |
535 |
+ |
|
536 |
+ |
double StuntDouble::getZangle(){ |
537 |
+ |
switch (objType) |
538 |
+ |
{ |
539 |
+ |
case OT_ATOM: |
540 |
+ |
sprintf( painCave.errMsg, |
541 |
+ |
"StuntDouble::getZangle was called for a regular atom.\n" |
542 |
+ |
"\tRegular Atoms don't have zAngles. Be smarter.\n"); |
543 |
+ |
painCave.isFatal = 0; |
544 |
+ |
simError(); |
545 |
+ |
// Return zeros. |
546 |
+ |
return 0; |
547 |
+ |
break; |
548 |
+ |
case OT_DATOM: |
549 |
+ |
return ((DirectionalAtom*)this)->getZangle(); |
550 |
+ |
break; |
551 |
+ |
case OT_RIGIDBODY: |
552 |
+ |
return ((RigidBody*)this)->getZangle(); |
553 |
+ |
break; |
554 |
+ |
default: |
555 |
+ |
sprintf( painCave.errMsg, |
556 |
+ |
"Unrecognized ObjType (%d) in StuntDouble::getZangle.\n", |
557 |
+ |
objType ); |
558 |
+ |
painCave.isFatal = 1; |
559 |
+ |
simError(); |
560 |
+ |
return 0; |
561 |
|
} |
562 |
|
} |
563 |
|
|
564 |
+ |
void StuntDouble::setZangle(double zAngle){ |
565 |
+ |
switch (objType) |
566 |
+ |
{ |
567 |
+ |
case OT_ATOM: |
568 |
+ |
sprintf( painCave.errMsg, |
569 |
+ |
"StuntDouble::setZangle was called for a regular atom.\n" |
570 |
+ |
"\tRegular Atoms don't have zAngles. Be smarter.\n"); |
571 |
+ |
painCave.isFatal = 1; |
572 |
+ |
simError(); |
573 |
+ |
break; |
574 |
+ |
case OT_DATOM: |
575 |
+ |
((DirectionalAtom*)this)->setZangle(zAngle); |
576 |
+ |
break; |
577 |
+ |
case OT_RIGIDBODY: |
578 |
+ |
((RigidBody*)this)->setZangle(zAngle); |
579 |
+ |
break; |
580 |
+ |
default: |
581 |
+ |
sprintf( painCave.errMsg, |
582 |
+ |
"Unrecognized ObjType (%d) in StuntDouble::setZangle.\n", |
583 |
+ |
objType ); |
584 |
+ |
painCave.isFatal = 1; |
585 |
+ |
simError(); |
586 |
+ |
} |
587 |
+ |
} |
588 |
+ |
|
589 |
+ |
void StuntDouble::addZangle(double zAngle){ |
590 |
+ |
switch (objType) |
591 |
+ |
{ |
592 |
+ |
case OT_ATOM: |
593 |
+ |
sprintf( painCave.errMsg, |
594 |
+ |
"StuntDouble::addZangle was called for a regular atom.\n" |
595 |
+ |
"\tRegular Atoms don't have zAngles. Be smarter.\n"); |
596 |
+ |
painCave.isFatal = 1; |
597 |
+ |
simError(); |
598 |
+ |
break; |
599 |
+ |
case OT_DATOM: |
600 |
+ |
((DirectionalAtom*)this)->addZangle(zAngle); |
601 |
+ |
break; |
602 |
+ |
case OT_RIGIDBODY: |
603 |
+ |
((RigidBody*)this)->addZangle(zAngle); |
604 |
+ |
break; |
605 |
+ |
default: |
606 |
+ |
sprintf( painCave.errMsg, |
607 |
+ |
"Unrecognized ObjType (%d) in StuntDouble::addZangle.\n", |
608 |
+ |
objType ); |
609 |
+ |
painCave.isFatal = 1; |
610 |
+ |
simError(); |
611 |
+ |
} |
612 |
+ |
} |
613 |
+ |
|
614 |
|
void StuntDouble::addProperty(GenericData* data){ |
615 |
|
map<string, GenericData*>::iterator result; |
616 |
|
result = properties.find(data->getID()); |
632 |
|
|
633 |
|
result = properties.find(propName); |
634 |
|
|
635 |
< |
if(result != properties.end()) |
635 |
> |
if(result != properties.end()){ |
636 |
> |
delete result->second; |
637 |
|
properties.erase(result); |
638 |
+ |
|
639 |
+ |
} |
640 |
|
|
641 |
|
} |
642 |
|
GenericData* StuntDouble::getProperty(const string& propName){ |
649 |
|
return (*result).second; |
650 |
|
else |
651 |
|
return NULL; |
652 |
< |
} |
652 |
> |
} |