Advertisement
Guest User

Untitled

a guest
Nov 16th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.60 KB | None | 0 0
  1. __int64 __usercall CM2Model::AssignBoneMasterData@<rax>(CM2Model *a1@<rcx>)
  2. {
  3. CM2Model *m2Model; // rbx
  4. __int64 v2; // rax
  5. __int64 result; // rax
  6. __int64 m_skeleton; // rdi
  7. __int64 v5; // rax
  8. _QWORD *v6; // rdx
  9. __int64 a7; // [rsp+30h] [rbp-128h]
  10. char v8; // [rsp+40h] [rbp-118h]
  11.  
  12. m2Model = a1;
  13. if ( !a1->m_boneMasterData )
  14. {
  15. v2 = (*(__int64 (__fastcall **)(CM2Model *, char *, signed __int64))(a1->modelBase.qword0 + 408i64))(
  16. a1,
  17. &v8,
  18. 260i64);
  19. if ( sub_1401F0470(
  20. (__int64)"d:\\buildserver\\wow\\4\\work\\shared-checkout\\branches\\wow-patch-8_1_0-branch\\engine\\source\\mo"
  21. "del2\\m2model.cpp",
  22. 15049,
  23. (__int64)"(m_boneMasterData)",
  24. (__int64)"Model: %s",
  25. (__int64)"\"Model\" \": %s\"",
  26. v2) )
  27. {
  28. __debugbreak();
  29. }
  30. }
  31. m2Model->m_boneMasterData->m_bones = &m2Model->m_cm2Shared->m_m2Data->bones;
  32. m2Model->m_boneMasterData->m_sequences = &m2Model->m_cm2Shared->m_m2Data->sequences;
  33. m2Model->m_boneMasterData->m_key_bone_lookup = &m2Model->m_cm2Shared->m_m2Data->key_bone_lookup;
  34. m2Model->m_boneMasterData->m_sequence_lookups = &m2Model->m_cm2Shared->m_m2Data->sequence_lookups;
  35. m2Model->m_boneMasterData->m_attachments = &m2Model->m_cm2Shared->m_m2Data->attachments;
  36. m2Model->m_boneMasterData->m_attachment_lookup_table = &m2Model->m_cm2Shared->m_m2Data->attachment_lookup_table;
  37. m2Model->m_boneMasterData->qword30 = (M2Array *)m2Model->qword520;
  38. m2Model->m_boneMasterData->qword38 = *(M2Array *)&m2Model->field_4C8;
  39. m2Model->m_boneMasterData->qword40 = m2Model->qword4B8;
  40. m2Model->m_boneMasterData->qword50 = m2Model->qword528;
  41. result = (__int64)m2Model->m_boneMasterData;
  42. *(_QWORD *)(result + 72) = (char *)m2Model + 1172;
  43. m_skeleton = *(_QWORD *)&m2Model->m_skeleton;
  44. if ( m_skeleton )
  45. {
  46. if ( !(*(_BYTE *)(m_skeleton + 56) & 1) )
  47. {
  48. LODWORD(a7) = 0;
  49. if ( SErrDisplayAssert(
  50. 0x85100000,
  51. (__int64)"d:\\buildserver\\wow\\4\\work\\shared-checkout\\branches\\wow-patch-8_1_0-branch\\engine\\source\\"
  52. "model2\\m2skeleton.inl",
  53. 70,
  54. (__int64)"m_loaded",
  55. 0,
  56. 1,
  57. a7) )
  58. {
  59. __debugbreak();
  60. }
  61. }
  62. v5 = *(_QWORD *)(m_skeleton + 88);
  63. if ( !v5 )
  64. v5 = *(_QWORD *)(m_skeleton + 72);
  65. v6 = *(_QWORD **)(v5 + 424);
  66. m2Model->m_boneMasterData->m_bones = (M2Array *)v6[2];
  67. m2Model->m_boneMasterData->m_sequences = (M2Array *)(v6[1] + 8i64);
  68. m2Model->m_boneMasterData->m_key_bone_lookup = (M2Array *)(v6[2] + 8i64);
  69. m2Model->m_boneMasterData->m_sequence_lookups = (M2Array *)(v6[1] + 16i64);
  70. m2Model->m_boneMasterData->m_attachments = (M2Array *)v6[3];
  71. m2Model->m_boneMasterData->m_attachment_lookup_table = (M2Array *)(v6[3] + 8i64);
  72. m2Model->m_boneMasterData->qword30 = *(M2Array **)(*(_QWORD *)&m2Model->m_skeleton + 152i64);
  73. m2Model->m_boneMasterData->qword38 = *(M2Array *)(*(_QWORD *)&m2Model->m_skeleton + 120i64);
  74. m2Model->m_boneMasterData->qword48 = *(_QWORD *)&m2Model->m_skeleton + 60i64;
  75. m2Model->m_boneMasterData->qword40 = *(_QWORD *)(*(_QWORD *)&m2Model->m_skeleton + 104i64);
  76. m2Model->m_boneMasterData->qword50 = *(_QWORD *)(*(_QWORD *)&m2Model->m_skeleton + 160i64);
  77. sub_1401661E0(*(_QWORD *)&m2Model->m_skeleton, &m2Model->m_boneMasterData->m_bones);
  78. result = (__int64)m2Model->m_boneMasterData;
  79. if ( *(_QWORD *)(result + 104) )
  80. *(_DWORD *)(result + 144) |= 1u;
  81. }
  82. return result;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement