mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-25 11:26:37 +00:00 
			
		
		
		
	Add or replace individual parts
This commit is contained in:
		
							parent
							
								
									1f566fc93a
								
							
						
					
					
						commit
						e869433b07
					
				
					 2 changed files with 100 additions and 1 deletions
				
			
		|  | @ -382,7 +382,7 @@ void NpcAnimation::removeIndividualPart(int type){ | |||
|             lKnee = 0; | ||||
|         } | ||||
|          else if(type == ESM::PRT_RLeg && rUpperLeg){    //21
 | ||||
|             base->detachObjectFromBone(rAnkle); | ||||
|             base->detachObjectFromBone(rUpperLeg); | ||||
|             rUpperLeg = 0; | ||||
|         } | ||||
|         else if(type == ESM::PRT_LLeg && lUpperLeg){    //22
 | ||||
|  | @ -417,6 +417,104 @@ void NpcAnimation::removeIndividualPart(int type){ | |||
|             } | ||||
|         } | ||||
|     } | ||||
|     bool NpcAnimation::addOrReplaceIndividualPart(int type, int group, int priority, const std::string &mesh){ | ||||
|         if(priority >= partpriorities[type]){ | ||||
|             removeIndividualPart(type); | ||||
|             partslots[type] = group; | ||||
|             switch(type){ | ||||
|                 case ESM::PRT_Head:                           //0
 | ||||
|                     head = insertBoundedPart(mesh, "Head"); | ||||
|                     break; | ||||
|                 case ESM::PRT_Hair:                          //1
 | ||||
|                     hair = insertBoundedPart(mesh, "Head"); | ||||
|                     break; | ||||
|                 case ESM::PRT_Neck:                          //2
 | ||||
|                     neck = insertBoundedPart(mesh, "Neck"); | ||||
|                     break; | ||||
|                 case ESM::PRT_Cuirass:                          //3
 | ||||
|                     chest = insertFreePart(mesh, ":\""); | ||||
|                     break; | ||||
|                 case ESM::PRT_Groin:                          //4
 | ||||
|                     neck = insertBoundedPart(mesh, "Groin"); | ||||
|                     break; | ||||
|                 case ESM::PRT_Skirt:                          //5
 | ||||
|                     skirt = insertFreePart(mesh, ":|"); | ||||
|                     break; | ||||
|                 case ESM::PRT_RHand:                         //6
 | ||||
|                     rhand = insertFreePart(mesh, ":?"); | ||||
|                     break; | ||||
|                 case ESM::PRT_LHand:                         //7
 | ||||
|                     lhand = insertFreePart(mesh,  ":>"); | ||||
|                     break; | ||||
|                 case ESM::PRT_RWrist:                          //8
 | ||||
|                     rWrist = insertBoundedPart(mesh, "Right Wrist"); | ||||
|                     break; | ||||
|                 case ESM::PRT_LWrist:                          //9
 | ||||
|                     lWrist = insertBoundedPart(mesh + "*|", "Left Wrist"); | ||||
|                     break; | ||||
|                 case ESM::PRT_Shield:                         //10
 | ||||
|                     break; | ||||
|                 case ESM::PRT_RForearm:                          //11
 | ||||
|                     rForearm = insertBoundedPart(mesh, "Right Forearm"); | ||||
|                     break; | ||||
|                 case ESM::PRT_LForearm:                          //12
 | ||||
|                     lForearm = insertBoundedPart(mesh + "*|", "Left Forearm"); | ||||
|                     break; | ||||
|                 case ESM::PRT_RUpperarm:                          //13
 | ||||
|                     rupperArm = insertBoundedPart(mesh, "Right Upper Arm"); | ||||
|                     break; | ||||
|                 case ESM::PRT_LUpperarm:                          //14
 | ||||
|                     lupperArm = insertBoundedPart(mesh + "*|", "Left Upper Arm"); | ||||
|                     break; | ||||
|                 case ESM::PRT_RFoot:                             //15
 | ||||
|                     if(isBeast)    | ||||
|                         rBeastFoot = insertFreePart(mesh, ":<"); | ||||
|                     else | ||||
|                         rfoot = insertBoundedPart(mesh, "Right Foot"); | ||||
|                     break; | ||||
|                 case ESM::PRT_LFoot:                             //16
 | ||||
|                     if(isBeast)    | ||||
|                         lBeastFoot = insertFreePart(mesh, "::"); | ||||
|                     else | ||||
|                         lfoot = insertBoundedPart(mesh + "*|", "Left Foot"); | ||||
|                     break; | ||||
| 
 | ||||
|                  case ESM::PRT_RAnkle:                          //17
 | ||||
|                     rAnkle = insertBoundedPart(mesh , "Right Ankle"); | ||||
|                     break; | ||||
|                 case ESM::PRT_LAnkle:                          //18
 | ||||
|                     lAnkle = insertBoundedPart(mesh + "*|", "Left Ankle"); | ||||
|                     break; | ||||
|                  case ESM::PRT_RKnee:                          //19
 | ||||
|                     rKnee = insertBoundedPart(mesh , "Right Knee"); | ||||
|                     break; | ||||
|                 case ESM::PRT_LKnee:                          //20
 | ||||
|                     lKnee = insertBoundedPart(mesh + "*|", "Left Knee"); | ||||
|                     break; | ||||
|                  case ESM::PRT_RLeg:                          //21
 | ||||
|                     rUpperLeg = insertBoundedPart(mesh, "Right Upper Leg"); | ||||
|                     break; | ||||
|                 case ESM::PRT_LLeg:                          //22
 | ||||
|                     lUpperLeg = insertBoundedPart(mesh + "*|", "Left Upper Leg"); | ||||
|                     break; | ||||
|                 case ESM::PRT_RPauldron:                          //23
 | ||||
|                     rclavicle = insertBoundedPart(mesh , "Right Clavicle"); | ||||
|                     break; | ||||
|                 case ESM::PRT_LPauldron:                          //24
 | ||||
|                     lclavicle = insertBoundedPart(mesh + "*|", "Left Clavicle"); | ||||
|                     break; | ||||
|                 case ESM::PRT_Weapon:                             //25
 | ||||
|                     break; | ||||
|                 case ESM::PRT_Tail:                              //26
 | ||||
|                     tail = insertFreePart(mesh, ":*"); | ||||
|                     break; | ||||
| 
 | ||||
| 
 | ||||
|             } | ||||
|             return true; | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -78,6 +78,7 @@ private: | |||
| 	void updateParts(); | ||||
|     void removeIndividualPart(int type); | ||||
|     void removePartGroup(int group); | ||||
|     bool addOrReplaceIndividualPart(int type, int group, int priority, const std::string &mesh); | ||||
| 	 | ||||
| }; | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue