Advertisement
Guest User

Untitled

a guest
Apr 28th, 2013
506
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.65 KB | None | 0 0
  1. from inc_noesis import *
  2. import noesis
  3. import rapi
  4. #Code is by TheDude
  5.  
  6. def registerNoesisTypes():
  7.     handle = noesis.register("Resident Evil Outbreak skeletons", ".AHI")
  8.     noesis.setHandlerTypeCheck(handle, noepyCheckType)
  9.     noesis.setHandlerLoadModel(handle, noepyLoadModel)
  10.     noesis.logPopup()
  11.     return 1
  12.  
  13.  
  14.  
  15. def noepyCheckType(data):
  16.     f = NoeBitStream(data)
  17.     if len(data) < 16:
  18.         return 0
  19.     return 1
  20.  
  21.  
  22. def noepyLoadModel(data, mdlList):
  23.     ctxt = rapi.rpgCreateContext()
  24.     rapi.rpgSetOption(noesis.RPGOPT_TRIWINDBACKWARD, 0)
  25.     f = NoeBitStream(data)
  26.  
  27.     boneList=[]
  28.  
  29.     unk1=f.read("i")[0]
  30.     numBones=f.read("i")[0]
  31.     fileSize=f.read("i")[0]
  32.     unkA=f.read("4i")[0]
  33.     for x in range(0,numBones-1):
  34.         start=f.read("H")[0]
  35.         unkB=f.read("H")[0]
  36.         unkC=f.read("i")[0]
  37.         boneSize=f.read("i")[0]
  38.         boneID=f.read("i")[0]
  39.         boneName="bone " + str(boneID)
  40.         boneParent=f.read("i")[0]
  41.         print (boneParent)
  42.         boneParentName="bone " + str(boneParent)
  43.         boneChild=f.read("i")[0]
  44.         unkD=f.read("i")[0]
  45.         scl=NoeVec3.fromBytes(f.readBytes(12))
  46.         s4=f.read("f")[0]
  47.         q=NoeQuat.fromBytes(f.readBytes(16))
  48.         trans=NoeVec3.fromBytes(f.readBytes(12))
  49.         t4=f.read(">f")[0]
  50.         unkE=f.read("i")[0]
  51.         unkF=f.read("i")[0]
  52.         unkG=f.read("46i")[0]
  53.         mtrx = q.toMat43(1)
  54.         mtrx[0] *= scl
  55.         mtrx[1] *= scl
  56.         mtrx[2] *= scl
  57.         mtrx[3] = trans
  58.  
  59.         if boneID==0:
  60.             boneList.append(NoeBone(boneID+1, boneName, mtrx, None, boneParent))
  61.         else:
  62.             boneList.append(NoeBone(boneID, boneName, mtrx, None, boneParent))
  63.  
  64.  
  65.  
  66.  
  67.     boneList = rapi.multiplyBones(boneList)
  68.     mdl =  NoeModel()
  69.     mdlList.append(mdl)
  70.     mdl.setBones(boneList)
  71.  
  72.  
  73.     rapi.rpgClearBufferBinds()
  74.  
  75.     return 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement