CGfxCharacter.cpp 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490
  1. #include "CGfxCharacter.h"
  2. #include "CGFXSpec.h"
  3. #include "CResourceManager.h"
  4. #include "CModelManager.h"
  5. #include "CGraphicsTexLoadOptions.h"
  6. #include "CFTTTextureManager.h"
  7. #include "CFTTColour.h"
  8. #include "Matrix.h"
  9. #include "CFTTGraphicsDevice.h"
  10. #include "CGfxShadow.h"
  11. #include "XSYS.h"
  12. #include "CFTTTexture.h"
  13. #include "CPlayerShader.h"
  14. #include "CGfxShadowMapManager.h"
  15. #include "CGfxShadowMap.h"
  16. #include "CGfxEnvironmentMap.h"
  17. #include "CFTTGraphicsDevice.h"
  18. #include "CPBRLighting.h"
  19. #include "CMatchSetup.h"
  20. #include "TGame.h"
  21. #include "CFTTVector32x4.h"
  22. #include "CGFXSpec.h"
  23. #include "CGfxDynNormMap.h"
  24. #include "CGfxPlayer.h"
  25. #include "CFTTBatchModelManager.h"
  26. #include "TFTTCacheLookup.h"
  27. #include "GFXRENDER.h"
  28. #include "CLinearDepthShader.h"
  29. #include "CFTTMaterialManager.h"
  30. #include "TAnimData.h"
  31. #include "CFTTCamera.h"
  32. #include "FTT2D.h"
  33. #include "FE2D.h"
  34. #include "global_func.h"
  35. #include "CShaderSetup.h"
  36. #include "CLegacyLitShader.h"
  37. #include "memctrl.h"
  38. unsigned int s_uHairColours[8] = {0xFF202020, 0xFF64573E, 0xFF3D3323, 0xFFDDD499, 0xFFB1953F, 0xFFB86732, 0xFFB8B8B8, 0xFFFFFFFF};
  39. bool CGfxCharacter::s_bDefaultModelsLoaded; //003A4ABC
  40. CFTTModel *CGfxCharacter::s_pDefaultShadowModel[2]; //003A4AC0
  41. CFTTModel *CGfxCharacter::s_pDefaultBodyModel[50]; //003A4AC8
  42. //CFTTModel *CGfxCharacter::s_pDefaultHairModel[100]; //003A4B90
  43. CFTTModel *CGfxCharacter::s_pDefaultHeadModel[40]; //003A4D20
  44. CFTTModel *CGfxCharacter::s_pPropModel[12]; //003A4DC0
  45. CAnimLib *CGfxCharacter::s_pAnimLib; //003A4DF0
  46. int CGfxCharacter::s_iAtlasAmbientTextures[10]; //003A4DF4
  47. int CGfxCharacter::s_iSkinTextures[12]; //003A4E1C
  48. int CGfxCharacter::s_iFacialHairTextures[7]; //003A4E4C
  49. int CGfxCharacter::s_iHairMegaTexture; //003A4E68
  50. int CGfxCharacter::s_iHairSpecularTexture; //003A4E6C
  51. int CGfxCharacter::s_iHairNormalTexture; //003A4E70
  52. int CGfxCharacter::s_iGlovesTextures[5]; //003A4E74
  53. int CGfxCharacter::s_iBootsTextures[12]; //003A4E88
  54. float CGfxCharacter::s_fAtlasDiscardAlpha; //003A4EB8
  55. int CGfxCharacter::s_iCount; //003A4EBC
  56. int CGfxCharacter::s_iAtlasCount; //003A4EC0
  57. CFTTRenderToTexture *CGfxCharacter::s_pMegaRTT; //003A4ECC
  58. CFTTTexture *CGfxCharacter::s_pMegaMippedTex; //003A4ED0
  59. int CGfxCharacter::s_iWalkDirectionAnimLookUp[8] = {-1, -1, 0x675, -1, 0x677, -1, 0x676, -1}; //0033EC28
  60. int CGfxCharacter::s_iManagerDiffuseTextures[12] = {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; //0033EC48
  61. int CGfxCharacter::s_iManagerSpecularTextures[3] = {-1, 0, 0}; //0033EC78
  62. int CGfxCharacter::s_iManagerNormalTextures[3] = {-1, 0, 0}; //0033EC84
  63. int CGfxCharacter::s_iManagerAmbientTextures[3] = {-1, 0, 0}; //0033EC90
  64. int CGfxCharacter::s_iTorsoSpecularTexture = -1; //0033EC9C
  65. int CGfxCharacter::s_iTorsoNormalTexture = -1; //0033ECA0
  66. int CGfxCharacter::s_iKitSpecularTexture = -1; //0033ECA4
  67. int CGfxCharacter::s_iKitDynamicNormalTexture = -1; //0033ECA8
  68. int CGfxCharacter::s_iKitDynamicAmbientTexture = -1; //0033ECAC
  69. int CGfxCharacter::s_iAtlasSpecularTexture = -1; //0033ECB0
  70. int CGfxCharacter::s_iAtlasNormalTexture = -1; //0033ECB4
  71. int CGfxCharacter::CHAR_ATLAS_W = 256; //0033ECB8
  72. int CGfxCharacter::CHAR_ATLAS_H = 256; //0033ECBC
  73. int CGfxCharacter::CHAR_MEGA_NUM_X = 4; //0033ECC0
  74. int CGfxCharacter::CHAR_MEGA_NUM_Y = 8; //0033ECC4
  75. int CGfxCharacter::CHAR_MEGA_W = CGfxCharacter::CHAR_MEGA_NUM_X * CGfxCharacter::CHAR_ATLAS_W; //003A4EC4
  76. int CGfxCharacter::CHAR_MEGA_H = CGfxCharacter::CHAR_ATLAS_H * CGfxCharacter::CHAR_ATLAS_H; //003A4EC8
  77. CFTTModel *list_model_3A4BA4[95];
  78. CFTTModel *list_model_3A4D20[40];
  79. static OfficialSkinHair_st unk_33EDDC[20] = {
  80. {0, 0, 1, 0xC, 1, 1},
  81. {0, 0, 2, 0xC, 1, 0},
  82. {0, 0, 7, 0xC, 2, 2},
  83. {0, 0, 1, 2, 2, 1},
  84. {0, 0, 2, 2, 1, 0},
  85. {3, 2, 0, 2, 1, 2},
  86. {4, 3, 0, 2, 2, 1},
  87. {0, 0, 2, 0xC, 2, 0},
  88. {1, 1, 2, 0xC, 1, 2},
  89. {3, 2, 0, 6, 1, 1},
  90. {4, 3, 0, 6, 2, 0},
  91. {3, 2, 2, 6, 2, 2},
  92. {4, 3, 2, 6, 1, 1},
  93. {0, 0, 1, 0, 1, 0},
  94. {1, 1, 1, 0, 2, 2},
  95. {3, 2, 1, 0, 2, 1},
  96. {4, 3, 1, 0, 1, 0},
  97. {5, 4, 0, 7, 1, 2},
  98. {5, 4, 0, 7, 2, 1},
  99. {5, 4, 0, 7, 2, 0},
  100. };
  101. const char *s_sShadowModelFile[] = {
  102. "data/models/player/body/shadow_1.ftm",
  103. "data/models/player/body/shadow_2.ftm",
  104. };
  105. const char *s_sBodyModelFile[] = {
  106. "body_skinny_short_1.ftm",
  107. "body_skinny_short_2.ftm",
  108. "body_skinny_short_3.ftm",
  109. "body_skinny_short_4.ftm",
  110. "body_skinny_short_5.ftm",
  111. "body_skinny_long_1.ftm",
  112. "body_skinny_long_2.ftm",
  113. "body_skinny_long_3.ftm",
  114. "body_skinny_long_4.ftm",
  115. "body_skinny_long_5.ftm",
  116. "body_regular_short_1.ftm",
  117. "body_regular_short_2.ftm",
  118. "body_regular_short_3.ftm",
  119. "body_regular_short_4.ftm",
  120. "body_regular_short_5.ftm",
  121. "body_regular_long_1.ftm",
  122. "body_regular_long_2.ftm",
  123. "body_regular_long_3.ftm",
  124. "body_regular_long_4.ftm",
  125. "body_regular_long_5.ftm",
  126. "body_stocky_short_1.ftm",
  127. "body_stocky_short_2.ftm",
  128. "body_stocky_short_3.ftm",
  129. "body_stocky_short_4.ftm",
  130. "body_stocky_short_5.ftm",
  131. "body_stocky_long_1.ftm",
  132. "body_stocky_long_2.ftm",
  133. "body_stocky_long_3.ftm",
  134. "body_stocky_long_4.ftm",
  135. "body_stocky_long_5.ftm",
  136. "mbody_1_1.ftm",
  137. "mbody_1_1.ftm",
  138. "mbody_1_2.ftm",
  139. "mbody_1_2.ftm",
  140. "mbody_1_2.ftm",
  141. "mbody_2_1.ftm",
  142. "mbody_2_1.ftm",
  143. "mbody_2_2.ftm",
  144. "mbody_2_2.ftm",
  145. "mbody_2_2.ftm",
  146. "mbody_3_1.ftm",
  147. "mbody_3_1.ftm",
  148. "mbody_3_2.ftm",
  149. "mbody_3_2.ftm",
  150. "mbody_3_2.ftm",
  151. "torso_0_1.ftm",
  152. "torso_0_1.ftm",
  153. "torso_0_2.ftm",
  154. "torso_0_2.ftm",
  155. "torso_0_2.ftm",
  156. };
  157. const char *s_sPropsModelFile[] = {
  158. "flag_02.ftm",
  159. "flag_01.ftm",
  160. "armband_01.ftm",
  161. "yellowcard_l.ftm",
  162. "redcard_l.ftm",
  163. "yellowcard_r.ftm",
  164. "redcard_r.ftm",
  165. "glove_0_1.ftm",
  166. "glove_0_2.ftm",
  167. "glove_0_3.ftm",
  168. "glove_0_4.ftm",
  169. "glove_0_5.ftm",
  170. };
  171. const char *s_sHairModelFile = "data/models/player/hair/hair_%i_%i.ftm";
  172. const char *s_sHeadModelFile = "data/models/player/head/head_%i_%i.ftm";
  173. const char *color_list_3230BC[] = {
  174. "white",
  175. "white_tan",
  176. "black_med",
  177. "black_med",
  178. "black_dark",
  179. "asian",
  180. };
  181. const char *hair_list_3230D4[7] = {
  182. "facialhair_moustache",
  183. "facialhair_goatee",
  184. "facialhair_chinstrap",
  185. "facialhair_lightbeard",
  186. "facialhair_beard",
  187. "facialhair_chops",
  188. "facialhair_stubble",
  189. };
  190. const char *s_sManagerTexturePrefixes[3] = {
  191. "ManagerFormal",
  192. "StylishCoat",
  193. "Trainningjacket",
  194. };
  195. static int dword_17D658[4] = {0, 1, 1, 0};
  196. const char *aStorsoSPng_0 = "%storso_%s.png";
  197. const char *aDataModelsPlay = "data/models/player/textures/";
  198. static const char *off_3230BC[12] = {0};
  199. static uint32 dword_3A4ED4[4] = {FTTHash("gloves"), 0, 0, 0};
  200. TSATAnim_TSX* GetAnim(uint a1){
  201. return CGfxCharacter::s_pAnimLib->GetAnim(rand(),true);
  202. }
  203. //-------------------------------------------------------------------------------------------------
  204. //0017D450
  205. CGfxCharacter::CGfxCharacter(int i1, int i2, int i3, TPlayerInfo *tPlayerInfo4, CPlayer *cPlayer5, int i6, int i7) {
  206. }
  207. //-------------------------------------------------------------------------------------------------
  208. //0017DC4C
  209. CGfxCharacter::~CGfxCharacter() {
  210. }
  211. //-------------------------------------------------------------------------------------------------
  212. //0017D688 ^_^
  213. void CGfxCharacter::SetAnimation(int i1, float f2, int i3) {
  214. }
  215. //-------------------------------------------------------------------------------------------------
  216. //0017D69C
  217. void CGfxCharacter::SetupPlayer(TPlayerInfo *, bool, int, int) {
  218. }
  219. //-------------------------------------------------------------------------------------------------
  220. //0017DD78 ^_^
  221. void CGfxCharacter::SetTeamID(int a1) {
  222. }
  223. //-------------------------------------------------------------------------------------------------
  224. //0017DD80 //^_^
  225. void CGfxCharacter::Init() {
  226. }
  227. //-------------------------------------------------------------------------------------------------
  228. //0017DDC0 //^_^ 经过单元测试,功能正常
  229. void CGfxCharacter::SetMegaAtlasDims(int a0, int a1, int a2, int a3) {
  230. //LOGI("CGfxCharacter::SetMegaAtlasDims 0017DDC0 entry");
  231. }
  232. //-------------------------------------------------------------------------------------------------
  233. int dword_2FE414[] = {19, 40};
  234. //0017DEF4
  235. void CGfxCharacter::LoadDefaultModels() {
  236. //loc_17E522
  237. }
  238. //-------------------------------------------------------------------------------------------------
  239. //0017E5EC ^_^
  240. void CGfxCharacter::Shutdown() {
  241. }
  242. //-------------------------------------------------------------------------------------------------
  243. //0017E640
  244. void CGfxCharacter::DeleteDefaultModels() {
  245. }
  246. //-------------------------------------------------------------------------------------------------
  247. //0017E8DC ^_^
  248. void CGfxCharacter::SetLOD(int i1, int i2, int i3) {
  249. }
  250. //-------------------------------------------------------------------------------------------------
  251. //0017E8E6 ^_^
  252. void CGfxCharacter::SetKit(int i1) {
  253. }
  254. //-------------------------------------------------------------------------------------------------
  255. //0017E8EC ^_^
  256. void CGfxCharacter::SetBootsColour(EPlayerBoots epBoots1) {
  257. }
  258. //-------------------------------------------------------------------------------------------------
  259. //0017E904
  260. void CGfxCharacter::SetFaceType(int i1) {
  261. //empty
  262. }
  263. //-------------------------------------------------------------------------------------------------
  264. //0017E906 ^_^
  265. void CGfxCharacter::SetSkinColour(EPlayerSkinColour epsColour1, int i2) {
  266. }
  267. //-------------------------------------------------------------------------------------------------
  268. //0017E910 ^_-
  269. void CGfxCharacter::SetFacialHair(EPlayerFacialHair efHair1, EPlayerHairColour ehColour2) {
  270. }
  271. //-------------------------------------------------------------------------------------------------
  272. //0017E960
  273. void CGfxCharacter::SetHairColour(EPlayerHairColour a1) {
  274. }
  275. //-------------------------------------------------------------------------------------------------
  276. //0017E968 ^_^
  277. OfficialSkinHair_st *CGfxCharacter::GetOfficialSkinHair() {
  278. return nullptr;
  279. }
  280. //-------------------------------------------------------------------------------------------------
  281. //0017E984 ^_^
  282. void CGfxCharacter::UpdateUVs() {
  283. }
  284. //-------------------------------------------------------------------------------------------------
  285. //0017E9C0
  286. void CGfxCharacter::CreateAtlasTextures(TPlayerInfo *, int, int, int, int) {
  287. }
  288. //-------------------------------------------------------------------------------------------------
  289. //0017F3D4
  290. void CGfxCharacter::SetBodyXTexture(TPlayerInfo *tPlayerInfo1) {
  291. //loc_17F4CE
  292. }
  293. //-------------------------------------------------------------------------------------------------
  294. //0017F530 ^_^
  295. void CGfxCharacter::SetAnimationBlend(int i1, int i2, float f3, float f4, float f5, float f6, int i7, int i8) {
  296. }
  297. //-------------------------------------------------------------------------------------------------
  298. //0017F564 ^_^
  299. void CGfxCharacter::SetVerts(CFTTModel *cModel1) {
  300. }
  301. //-------------------------------------------------------------------------------------------------
  302. //0017F5B4
  303. void CGfxCharacter::GenerateSamples(TSATFrameSample *, TCharAnimSpec *) {
  304. }
  305. //-------------------------------------------------------------------------------------------------
  306. //0017F7D8
  307. uint32 CGfxCharacter::GetHeadRot() {
  308. return 0;
  309. }
  310. //-------------------------------------------------------------------------------------------------
  311. //0017F864
  312. void CGfxCharacter::UpdateMatrix(CFTTMatrix32 *cMatrix32_1) {
  313. //0017F86E LDR.W R0, [R0,#0x9C]
  314. }
  315. //-------------------------------------------------------------------------------------------------
  316. //0017F91C
  317. void CGfxCharacter::UpdateMatrices(CFTTMatrix32 *cfttMatrix32_1) {
  318. //TFTTHierarchyHeader *var_DE8;
  319. //loc_17FA56
  320. /*.text:0017FA56
  321. .text:0017FA56 loc_17FA56 ; CODE XREF: CGfxCharacter::UpdateMatrices(CFTTMatrix32 *)+B6¡üj
  322. .text:0017FA56 ; CGfxCharacter::UpdateMatrices(CFTTMatrix32 *)+F4¡üj
  323. .text:0017FA56 ADD.W SP, SP, #0xDD0
  324. .text:0017FA5A POP.W {R4-R8,PC}
  325. .text:0017FA5A ; End of function CGfxCharacter::UpdateMatrices(CFTTMatrix32 *)*/
  326. }
  327. //-------------------------------------------------------------------------------------------------
  328. //0017FA70 ^_^
  329. void CGfxCharacter::SkinShadow() {
  330. }
  331. //-------------------------------------------------------------------------------------------------
  332. //0017FA76 ^_^
  333. void CGfxCharacter::SkinModels() {
  334. //locret_17FAB0
  335. }
  336. //-------------------------------------------------------------------------------------------------
  337. //0017FAB8
  338. void CGfxCharacter::RenderBatch(ESHADOWMAP_SAMPLING e_1, int i_2) {
  339. }
  340. //-------------------------------------------------------------------------------------------------
  341. //00180860 ^_^
  342. CFTTTexture *CGfxCharacter::GetMegaTexture() {
  343. return 0;
  344. }
  345. //-------------------------------------------------------------------------------------------------
  346. //001808AC ^_- 经过单元测试,功能正常
  347. void CGfxCharacter::RenderShadowBatch(int i1) {
  348. //loc_1809B6
  349. }
  350. //-------------------------------------------------------------------------------------------------
  351. //001809C8 ^_^
  352. void CGfxCharacter::CreateMippedMegaTexture() {
  353. return;
  354. }
  355. //-------------------------------------------------------------------------------------------------
  356. //00180A30 ^_^
  357. void CGfxCharacter::SkinProp() {
  358. }
  359. //-------------------------------------------------------------------------------------------------
  360. //00180A64 ^_- 经过单元测试,功能正常
  361. void CGfxCharacter::RenderProp(CFTTMatrix32 &cfttMatrix32_1) {
  362. }
  363. //-------------------------------------------------------------------------------------------------
  364. //00180B20
  365. void CGfxCharacter::RenderShadow(CFTTMatrix32 *cMatrix32_1) {
  366. }
  367. //-------------------------------------------------------------------------------------------------
  368. //00180B70 ^_^
  369. void CGfxCharacter::GetInfo(CFTTModel *&cModel_1, CFTTMatrix32 &cMatrix32_2) {
  370. //00180B84 LDR.W R2, [R2,R3,LSL#2]
  371. }
  372. //-------------------------------------------------------------------------------------------------
  373. //00180BD4 ^_^
  374. void CGfxCharacter::ResetShadowMatrix() {
  375. }
  376. //-------------------------------------------------------------------------------------------------
  377. //00180BF0 ^_^
  378. void CGfxCharacter::LockVertexBuffers() {
  379. }
  380. //-------------------------------------------------------------------------------------------------
  381. //00180C00 ^_^
  382. void CGfxCharacter::UnlockVertexBuffers() {
  383. }
  384. //-------------------------------------------------------------------------------------------------
  385. //00180C0C
  386. int CGfxCharacter::UpdateAnimation(bool b1) {
  387. return 1;
  388. }
  389. //-------------------------------------------------------------------------------------------------
  390. //00180E00 ^_- 经过单元测试,功能正常
  391. int CGfxCharacter::GetUVScale(TBinUVScale *uvScale, int i2) {
  392. return 1;
  393. }
  394. //-------------------------------------------------------------------------------------------------
  395. //00180F28
  396. void CGfxCharacter::UpdateUVs(CFTTModel **cModel1, int i2, TUV **tuv3) {
  397. }
  398. //-------------------------------------------------------------------------------------------------
  399. //00181148 ^_^
  400. void CGfxCharacter::SetPlayerIsKeeper(bool a1) {
  401. }
  402. //-------------------------------------------------------------------------------------------------
  403. //0018114E ^_^
  404. void CGfxCharacter::UpdateBlinking() {
  405. }
  406. //-------------------------------------------------------------------------------------------------
  407. //00181188
  408. void CGfxCharacter::Blink(bool b1) {
  409. }
  410. //-------------------------------------------------------------------------------------------------
  411. //00181374 ^_^
  412. void CGfxCharacter::GetHeadInfo(int i1, CFTTModel *&cModel2, CFTTModel *&cModel3, TUV *&tuv4, TUV *&tuv5, int &i6, EPlayerSkinColour &eColor7) {
  413. }
  414. //-------------------------------------------------------------------------------------------------
  415. /*
  416. --------------------------------------------------------------------------
  417. 2021.12.17 这几个函数分配给八哥,做外包
  418. 2021.12.20 八哥完成这几个函数
  419. 0017e910 CGfxCharacter::SetFacialHair 24
  420. 0017f564 CGfxCharacter::SetVerts 26
  421. 00180b20 CGfxCharacter::RenderShadow 28
  422. 0017e5ec CGfxCharacter::Shutdown 30
  423. 00180b70 CGfxCharacter::GetInfo 33
  424. 0017f7d8 CGfxCharacter::GetHeadRot 38
  425. 001809c8 CGfxCharacter::CreateMippedMegaTexture 41
  426. 0017f864 CGfxCharacter::UpdateMatrix 47
  427. 2021.12.20 这几个函数分配给八哥,做外包
  428. 0017e904 CGfxCharacter::SetFaceType 1
  429. 0017e960 CGfxCharacter::SetHairColour 2
  430. 0017e8e6 CGfxCharacter::SetKit 2
  431. 00181148 CGfxCharacter::SetPlayerIsKeeper 2
  432. 0017dd78 CGfxCharacter::SetTeamID 2
  433. 0017fa70 CGfxCharacter::SkinShadow 2
  434. 0017e8dc CGfxCharacter::SetLOD 3
  435. 0017e906 CGfxCharacter::SetSkinColour 3
  436. 00180c00 CGfxCharacter::UnlockVertexBuffers 4
  437. 00180bf0 CGfxCharacter::LockVertexBuffers 5
  438. 0017d688 CGfxCharacter::SetAnimation 5
  439. 0017e8ec CGfxCharacter::SetBootsColour 7
  440. 0017e968 CGfxCharacter::GetOfficialSkinHair 8
  441. 00180bd4 CGfxCharacter::ResetShadowMatrix 9
  442. 00180860 CGfxCharacter::GetMegaTexture 13
  443. 0017f530 CGfxCharacter::SetAnimationBlend 14
  444. 00180a30 CGfxCharacter::SkinProp 19
  445. 0017dd80 CGfxCharacter::Init 20
  446. 0017fa76 CGfxCharacter::SkinModels 21
  447. 0018114e CGfxCharacter::UpdateBlinking 21
  448. 00181374 CGfxCharacter::GetHeadInfo 22
  449. 0017e984 CGfxCharacter::UpdateUVs 22
  450. 00180a64 CGfxCharacter::RenderProp 58
  451. 00180e00 CGfxCharacter::GetUVScale 90
  452. 001808ac CGfxCharacter::RenderShadowBatch 97
  453. --------------------------------------------------------------------------
  454. 未分配
  455. 0017f3d4 CGfxCharacter::SetBodyXTexture 104
  456. 0017f91c CGfxCharacter::UpdateMatrices 106
  457. 0017ddc0 CGfxCharacter::SetMegaAtlasDims 107
  458. 00180f28 CGfxCharacter::UpdateUVs 109
  459. 0017dc4c CGfxCharacter::~CGfxCharacter 114
  460. 00181188 CGfxCharacter::Blink 130
  461. 00180c0c CGfxCharacter::UpdateAnimation 151
  462. 0017f5b4 CGfxCharacter::GenerateSamples 168
  463. 0017d450 CGfxCharacter::CGfxCharacter 177
  464. 0017e640 CGfxCharacter::DeleteDefaultModels 237
  465. 0017d69c CGfxCharacter::SetupPlayer 489
  466. 0017def4 CGfxCharacter::LoadDefaultModels 614
  467. 0017e9c0 CGfxCharacter::CreateAtlasTextures 712
  468. 0017fab8 CGfxCharacter::RenderBatch 1208
  469. */