CGfxEnv.cpp 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549
  1. #include "CGfxEnv.h"
  2. #include "CFTTFileIterator.h"
  3. #include "CFTTFileSystem.h"
  4. CFTTMatrix32 CGfxEnv::ms_mMatrix;
  5. TAvailableModel CGfxEnv::ms_tAvailableModels[6];
  6. bool CGfxEnv::ms_bDirectoriesScanned;
  7. TModelInfoDescription *CGfxEnv::ms_pConstructionModels[6];
  8. //-------------------------------------------------------------------------------------------------
  9. // 001A9034
  10. CGfxEnv::CGfxEnv() {}
  11. //-------------------------------------------------------------------------------------------------
  12. // 001A9036
  13. CGfxEnv::~CGfxEnv() {}
  14. //-------------------------------------------------------------------------------------------------
  15. // 001A9038
  16. void CGfxEnv::Init(TEnvConfig const &, int, bool) {}
  17. //-------------------------------------------------------------------------------------------------
  18. // 001A90D4
  19. void CGfxEnv::ProcessSlicedLoad(int) {}
  20. //-------------------------------------------------------------------------------------------------
  21. // 001A9264
  22. void CGfxEnv::EnableSlicedLoad() {}
  23. //-------------------------------------------------------------------------------------------------
  24. // 001A9274 //^_-
  25. void CGfxEnv::ScanStadiumModelsDirectory() {
  26. LOGE("CGfxEnv::ScanStadiumModelsDirectory 001A9274");
  27. memset(CGfxEnv::ms_tAvailableModels, 0xFF, sizeof(CGfxEnv::ms_tAvailableModels));
  28. // 1a928a
  29. if (CGfxEnv::ms_bDirectoriesScanned)
  30. return;
  31. CFTTFileIterator* fileiter_34 = NULL;
  32. memset(CGfxEnv::ms_pConstructionModels, 0, sizeof(CGfxEnv::ms_pConstructionModels));
  33. // 1a92b8
  34. CFTTFileSystem* filesystem = CFTTFileSystem::FindFileSystem("PKG");
  35. // 1a92c6
  36. filesystem->OpenDir("PKG:/Data/env/stadium/", &fileiter_34);
  37. do { // 1a92f0
  38. // 1a92f6
  39. if (!fileiter_34->IsValid())
  40. break;
  41. // 1a9302
  42. if (fileiter_34->IsDirectory())
  43. continue;
  44. // 1a930c
  45. char* name_r6 = fileiter_34->GetName();
  46. // 1a9312
  47. strlwr(name_r6);
  48. // 1a931a
  49. if (!strstr(name_r6, ".ftm"))
  50. continue;
  51. // 1a9324
  52. int secttype_r7 = CGfxEnv::GetSectionTypeFromFileName(name_r6);
  53. // 1a932e
  54. if (strstr(name_r6, "corner")) {
  55. // 1a9334
  56. secttype_r7 = 0;
  57. }
  58. // 1a933c
  59. else if (strstr(name_r6, "end")) {
  60. // 1a9342
  61. secttype_r7 = 1;
  62. }
  63. // 1a934a
  64. else if (strstr(name_r6, "side")) {
  65. // 1a9350
  66. secttype_r7 = 2;
  67. }
  68. // 1a9358
  69. else if (strstr(name_r6, "exterior")) {
  70. // 1a935e
  71. secttype_r7 = 3;
  72. }
  73. // 1a9366
  74. else if (strstr(name_r6, "surround")) {
  75. // 1a936c
  76. secttype_r7 = 4;
  77. }
  78. // 1a9370
  79. else if (secttype_r7 == -1) {
  80. continue;
  81. }
  82. TAvailableModel& model = CGfxEnv::ms_tAvailableModels[secttype_r7];
  83. // 1a9382
  84. if (model.InfoCount_1400 > 127)
  85. continue;
  86. TEnvStadiumModelInfo& modelinfo = model.ModelInfo_0[model.InfoCount_1400];
  87. // 1a93a2
  88. strlcpy(modelinfo.text_0, strlwr(name_r6), 32);
  89. // 1a93a8
  90. TModelInfoDescription* desc = CGfxEnv::FindModelInfoDescription(modelinfo.text_0);
  91. modelinfo.desc_24 = desc;
  92. // 1a93ac
  93. if (desc) {
  94. // 1a93b2
  95. modelinfo.height_20 = desc->height_48;
  96. // 1a93b6 1a93c0 1a93c8 1a93cc
  97. if (desc && !CGfxEnv::ms_pConstructionModels[secttype_r7] && strstr(desc->text_4, "construction"))
  98. CGfxEnv::ms_pConstructionModels[secttype_r7] = desc;
  99. } else {
  100. // 1a93d4
  101. modelinfo.height_20 = -1;
  102. }
  103. CGfxEnv::ms_tAvailableModels[secttype_r7].InfoCount_1400++;
  104. // 1a93ee 1a93f0
  105. } while (!fileiter_34->Next());
  106. // 1a93f8
  107. if (fileiter_34)
  108. delete fileiter_34;
  109. // 1a9404
  110. filesystem = CFTTFileSystem::FindFileSystem("PKG");
  111. // 1a9412
  112. filesystem->OpenDir("PKG:/Data/env/dressing/", &fileiter_34);
  113. do { // 1a942e
  114. // 1a9434
  115. if (!fileiter_34->IsValid())
  116. break;
  117. // 1a943e
  118. if (fileiter_34->IsDirectory())
  119. continue;
  120. // 1a9448
  121. char* name_r6 = fileiter_34->GetName();
  122. // 1a944e 1a9452 1a9458
  123. if (!strstr(name_r6, ".ftm") && !strstr(name_r6, ".FTM"))
  124. continue;
  125. TAvailableModel& model = CGfxEnv::ms_tAvailableModels[5];
  126. // 1a9464
  127. if (model.InfoCount_1400 > 127)
  128. continue;
  129. TEnvStadiumModelInfo& modelinfo = model.ModelInfo_0[model.InfoCount_1400];
  130. // 1a947a 1a9484
  131. strlcpy(modelinfo.text_0, strlwr(name_r6), 32);
  132. model.InfoCount_1400++;
  133. // 1a9498 1a949a
  134. } while (!fileiter_34->Next());
  135. if (fileiter_34)
  136. delete fileiter_34;
  137. char text_78[64];
  138. // 1a961e
  139. for (uint i_r0 = 0; i_r0 != 6; ++i_r0) {
  140. // 1a94c2
  141. TAvailableModel& model = CGfxEnv::ms_tAvailableModels[i_r0];
  142. // 1a94c6
  143. if (i_r0 - 3 >= 3) { // 1a94cc
  144. // 1a94e2
  145. memset(&model.EntryCount_1404, 0, 0x1884);
  146. // 1a9600
  147. for (int j_fp = 0; j_fp < model.InfoCount_1400; j_fp++) {
  148. // 1a94f6
  149. TEnvStadiumModelInfo& modelinfo = model.ModelInfo_0[j_fp];
  150. // 1a94fe
  151. int len_r0 = strlen(modelinfo.text_0);
  152. int len_r1 = len_r0;
  153. // 1a951a
  154. while (len_r1 != 0) {
  155. // 1a950e
  156. if (modelinfo.text_0[len_r1 - 1] == '_')
  157. text_78[len_r1 - 1] = ' ';
  158. else
  159. text_78[len_r1 - 1] = modelinfo.text_0[len_r1 - 1];
  160. len_r1--;
  161. // 1a9518
  162. }
  163. text_78[len_r0] = '\0';
  164. char text_38[64];
  165. char char_33; // TAvailableModelEntry的特征
  166. int tmp_2c; // TModelItem 的特征
  167. char char_2b;
  168. // 1a9538
  169. sscanf((const char*)text_78, "%s %c %i %c.ftm", text_38, &char_33, &tmp_2c, &char_2b);
  170. int EntryIndex_r2 = -1;
  171. // 1a9556
  172. while ((++EntryIndex_r2) < model.EntryCount_1404) {
  173. // 1a9562
  174. if (char_33 == model.Entry_1408[EntryIndex_r2].field_0)
  175. break;
  176. }
  177. // 1a9556
  178. if (EntryIndex_r2 >= model.EntryCount_1404) {
  179. // 1a956a
  180. EntryIndex_r2 = model.EntryCount_1404;
  181. model.EntryCount_1404++;
  182. }
  183. TAvailableModelEntry& Entry_r6 = model.Entry_1408[EntryIndex_r2];
  184. // 1a9574
  185. Entry_r6.field_0 = char_33;
  186. int ItemIndex_r3 = -1;
  187. // 1a9594
  188. while ((++ItemIndex_r3) < Entry_r6.ItemCount_4) {
  189. // 1a959c
  190. if (tmp_2c == Entry_r6.Item_8[ItemIndex_r3].field_0) { // 1a95a0
  191. break;
  192. }
  193. }
  194. // 1a9594
  195. if (ItemIndex_r3 >= Entry_r6.ItemCount_4) {
  196. Entry_r6.ItemCount_4 = ItemIndex_r3 + 1;
  197. }
  198. TModelItem& Item = Entry_r6.Item_8[ItemIndex_r3];
  199. Item.field_0 = tmp_2c;
  200. Item.field_8[Item.count_4++] = char_2b;
  201. // 1a95fa
  202. }
  203. // 1a9602
  204. }
  205. // 1a9606
  206. // 1a961a
  207. }
  208. // 1a9684
  209. for (int i_r6 = 0; i_r6 != 5; i_r6++) {
  210. TAvailableModel* r4_pModel = &CGfxEnv::ms_tAvailableModels[i_r6];
  211. // 1a964a
  212. CGfxEnv::InsertionSortStadiumModelInfo(r4_pModel->ModelInfo_0,
  213. r4_pModel->InfoCount_1400);
  214. for (int r2_i = 0; r2_i < r4_pModel->InfoCount_1400; r2_i++) { // 001A965E
  215. // 001A9662
  216. TEnvStadiumModelInfo* r3_pModelInfo = &r4_pModel->ModelInfo_0[r2_i];
  217. r4_pModel->field_2C88 = r3_pModelInfo->height_20;
  218. // 1a966a
  219. if (r3_pModelInfo->height_20 != 0)
  220. break;
  221. }
  222. // loc_1A9670
  223. r4_pModel->field_2C8C = r4_pModel->ModelInfo_0[r4_pModel->InfoCount_1400 - 1].height_20;
  224. }
  225. CGfxEnv::ms_bDirectoriesScanned = true;
  226. }
  227. //-------------------------------------------------------------------------------------------------
  228. // 001A96C8
  229. void CGfxEnv::CreateStadiumDressingTextures(int) {}
  230. //-------------------------------------------------------------------------------------------------
  231. // 001A9C2C
  232. void CGfxEnv::StadiumAdd(TEnvConfigStadium const *, int) {}
  233. //-------------------------------------------------------------------------------------------------
  234. // 001A9D94
  235. void CGfxEnv::EditSeatsTexture(uint) {}
  236. //-------------------------------------------------------------------------------------------------
  237. // 001A9ED8
  238. void CGfxEnv::ObjectsAdd(TEnvConfig const *, int) {}
  239. //-------------------------------------------------------------------------------------------------
  240. // 001A9FA4
  241. void CGfxEnv::SetupCrowd(EStadiumSection, int) {}
  242. //-------------------------------------------------------------------------------------------------
  243. // 001AA084
  244. void CGfxEnv::GetStadiumCapacity(TEnvConfig *) {}
  245. //-------------------------------------------------------------------------------------------------
  246. // 001AA0C0
  247. TModelInfoDescription *CGfxEnv::FindModelInfoDescription(char *a1) {
  248. LOGE("FindModelInfoDescription%s",a1);
  249. return (TModelInfoDescription*)rand();
  250. }
  251. //-------------------------------------------------------------------------------------------------
  252. // 001AA0F4
  253. void CGfxEnv::GetSectionCapacity(EStadiumSection) {}
  254. //-------------------------------------------------------------------------------------------------
  255. // 001AA100
  256. CFTTMatrix32 CGfxEnv::GetSectionMatrix(EStadiumSection e, bool b) {
  257. CFTTMatrix32 ret;
  258. return ret;
  259. }
  260. //-------------------------------------------------------------------------------------------------
  261. // 001AA17C
  262. void CGfxEnv::GetStadiumModelInfo(EStadiumSection, char const *) {}
  263. //-------------------------------------------------------------------------------------------------
  264. // 001AA1F0
  265. void CGfxEnv::UpdateStadiumSection(TEnvConfig const *, EStadiumSection) {}
  266. //-------------------------------------------------------------------------------------------------
  267. // 001AA24C
  268. int CGfxEnv::ModelGet(char const *, bool, int, EStadiumSection) { return 0; }
  269. //-------------------------------------------------------------------------------------------------
  270. // 001AA3F4
  271. int CGfxEnv::GetAvailableIndexFromModelIndex(EStadiumSection) { return 0; }
  272. //-------------------------------------------------------------------------------------------------
  273. // 001AA458
  274. void CGfxEnv::CalculateSectionCapacity(EStadiumSection) {}
  275. //-------------------------------------------------------------------------------------------------
  276. // 001AA45C
  277. void CGfxEnv::LoadSectionTextures(TEnvModel *, int) {}
  278. //-------------------------------------------------------------------------------------------------
  279. // 001AA478
  280. void CGfxEnv::UpdateStadiumFloodlights() {}
  281. //-------------------------------------------------------------------------------------------------
  282. // 001AA4CC
  283. int CGfxEnv::GetSectionTypeFromSection(EStadiumSection) { return 0; }
  284. //-------------------------------------------------------------------------------------------------
  285. // 001AA4E4
  286. void CGfxEnv::GetSectionTypeInfo(EStadiumSectionType) {}
  287. //-------------------------------------------------------------------------------------------------
  288. // 001AA4F8
  289. void CGfxEnv::Init(char *, int, bool) {}
  290. //-------------------------------------------------------------------------------------------------
  291. // 001AA588
  292. void CGfxEnv::EnvConfigLoad(TEnvConfig *, CFTTXmlReaderNode) {}
  293. //-------------------------------------------------------------------------------------------------
  294. // 001AA5B4
  295. int CGfxEnv::GetSectionTypeFromFileName(char const *a1) {
  296. LOGE("GetSectionTypeFromFileName%s",a1);
  297. return rand(); }
  298. //-------------------------------------------------------------------------------------------------
  299. // 001AA624
  300. // 001AA624 //^_-
  301. void CGfxEnv::InsertionSortStadiumModelInfo(TEnvStadiumModelInfo *pModeInfo1,
  302. int InfoCnt2) {
  303. LOGI("CGfxEnv::InsertionSortStadiumModelInfo 001AA624 entry");
  304. char text_8[0x20];
  305. for (int r10_i = 1; r10_i < InfoCnt2; ++r10_i) {
  306.   // loc_1AA6C0
  307.     // loc_1AA648
  308. memcpy(&text_8, pModeInfo1[r10_i].text_0,sizeof(pModeInfo1[r10_i].text_0));
  309. int height_r8 = pModeInfo1[r10_i].height_20;
  310. TModelInfoDescription *desc_r5 = pModeInfo1[r10_i].desc_24;
  311. int j_r6 = r10_i;
  312. for (; j_r6 > 0 &&pModeInfo1[j_r6 - 1].desc_24->height_48 > desc_r5->height_48;j_r6--) {
  313.       // 1aa680
  314. memcpy(pModeInfo1 + j_r6, pModeInfo1 + j_r6 - 1,sizeof(TEnvStadiumModelInfo));
  315. }
  316. // loc_1AA6A0
  317. memcpy(pModeInfo1[j_r6].text_0, text_8, 0x20);
  318. pModeInfo1[j_r6].height_20 = height_r8;
  319. pModeInfo1[j_r6].desc_24 = desc_r5;
  320.     // 1aa6be
  321. }
  322. for (int i_r1 = 0, i_r2 = 0; i_r1 < InfoCnt2; i_r1++) {
  323.     // 1aa6ce
  324. if (pModeInfo1[i_r1].desc_24->field_4C) pModeInfo1[i_r1]
  325. .desc_24->field_44 = (i_r2++);
  326. }
  327. LOGI("CGfxEnv::InsertionSortStadiumModelInfo 001AA624 end");
  328. }
  329. //-------------------------------------------------------------------------------------------------
  330. // 001AA6FC
  331. void CGfxEnv::GetSectionSubTypeInfo(EStadiumSectionType, char) {}
  332. //-------------------------------------------------------------------------------------------------
  333. // 001AA73C
  334. void CGfxEnv::GetTierSubSectionInfo(EStadiumSectionType, char, int) {}
  335. //-------------------------------------------------------------------------------------------------
  336. // 001AA76C
  337. void CGfxEnv::StadiumConfigLoad(TEnvConfig *, CFTTXmlReaderNode *) {}
  338. //-------------------------------------------------------------------------------------------------
  339. // 001AA970
  340. void CGfxEnv::ObjectsConfigLoad(TEnvConfig *, CFTTXmlReaderNode *) {}
  341. //-------------------------------------------------------------------------------------------------
  342. // 001AABA8
  343. bool CGfxEnv::ModelExists(char const *) { return 0; }
  344. //-------------------------------------------------------------------------------------------------
  345. // 001AABF4
  346. void CGfxEnv::StrToPos(char const *) {}
  347. //-------------------------------------------------------------------------------------------------
  348. // 001AACB2
  349. void CGfxEnv::EnvConfigSave(TEnvConfig *, CFTTXmlWriterNode) {}
  350. //-------------------------------------------------------------------------------------------------
  351. // 001AACCC
  352. void CGfxEnv::StadiumConfigSave(TEnvConfig *, CFTTXmlWriterNode *) {}
  353. //-------------------------------------------------------------------------------------------------
  354. // 001AAE50
  355. void CGfxEnv::ObjectsConfigSave(TEnvConfig *, CFTTXmlWriterNode *) {}
  356. //-------------------------------------------------------------------------------------------------
  357. // 001AAFD0
  358. void CGfxEnv::Process(float) {}
  359. //-------------------------------------------------------------------------------------------------
  360. // 001AB004
  361. void CGfxEnv::ObjectUpdate(TEnvObject *) {}
  362. //-------------------------------------------------------------------------------------------------
  363. // 001AB08C
  364. void CGfxEnv::ProcessSectionUpgradeAnimation() {}
  365. //-------------------------------------------------------------------------------------------------
  366. // 001AB1C4
  367. void CGfxEnv::RenderObjStaticShadows() {}
  368. //-------------------------------------------------------------------------------------------------
  369. // 001AB1FC
  370. void CGfxEnv::ObjectShadowRender(TEnvObject *, bool) {}
  371. //-------------------------------------------------------------------------------------------------
  372. // 001AB324
  373. void CGfxEnv::RenderObjDynamicShadows() {}
  374. //-------------------------------------------------------------------------------------------------
  375. // 001AB35C
  376. bool CGfxEnv::RenderObjDynamicShadowsHQ(uint, CFTTModel *&, CFTTMatrix32 &) {
  377. return 0;
  378. }
  379. //-------------------------------------------------------------------------------------------------
  380. // 001AB384
  381. void CGfxEnv::GetShadowInfo(TEnvObject *, CFTTModel *&, CFTTMatrix32 &) {}
  382. //-------------------------------------------------------------------------------------------------
  383. // 001AB478
  384. void CGfxEnv::RenderOpaque() {}
  385. //-------------------------------------------------------------------------------------------------
  386. // 001AB4CC
  387. void CGfxEnv::ObjectRender(TEnvObject *) {}
  388. //-------------------------------------------------------------------------------------------------
  389. // 001AB604
  390. bool CGfxEnv::StadiumVisibilityCheck() { return 0; }
  391. //-------------------------------------------------------------------------------------------------
  392. // 001AB640
  393. void CGfxEnv::StadiumElementRender(int) {}
  394. //-------------------------------------------------------------------------------------------------
  395. // 001AB884
  396. void CGfxEnv::RenderDecal() {}
  397. //-------------------------------------------------------------------------------------------------
  398. // 001AB8A8
  399. void CGfxEnv::StadiumElementRenderDecal(int) {}
  400. //-------------------------------------------------------------------------------------------------
  401. // 001AB97C
  402. void CGfxEnv::RenderAlpha() {}
  403. //-------------------------------------------------------------------------------------------------
  404. // 001AB9A0
  405. void CGfxEnv::StadiumElementRenderAlpha(int) {}
  406. //-------------------------------------------------------------------------------------------------
  407. // 001ABA08
  408. void CGfxEnv::SetStadiumSectionCustomColour(EStadiumSection, uint) {}
  409. //-------------------------------------------------------------------------------------------------
  410. // 001ABA2C
  411. void CGfxEnv::ResetSelectedStadiumElement(EStadiumSection) {}
  412. //-------------------------------------------------------------------------------------------------
  413. // 001ABA40
  414. void CGfxEnv::GetAnimationInfo(EStadiumSection) {}
  415. //-------------------------------------------------------------------------------------------------
  416. // 001ABA54
  417. void CGfxEnv::ResetUpgradeAnimationInfo() {}
  418. //-------------------------------------------------------------------------------------------------
  419. // 001ABA80
  420. void CGfxEnv::InitialiseSectionUpgradeAnimation(EStadiumSection,
  421. ESectionUpgradeAnimType,
  422. void (*)(EStadiumSection),
  423. void (*)(EStadiumSection)) {}
  424. //-------------------------------------------------------------------------------------------------
  425. // 001ABAE0
  426. void CGfxEnv::GetSectionModel(EStadiumSection) {}
  427. //-------------------------------------------------------------------------------------------------
  428. // 001ABB04
  429. void CGfxEnv::GetOrientedSectionFromSection(EStadiumSection, int) {}
  430. //-------------------------------------------------------------------------------------------------
  431. // 001ABB3C
  432. void CGfxEnv::Shutdown() {}
  433. //-------------------------------------------------------------------------------------------------
  434. // 001ABBF0
  435. void CGfxEnv::FreeStadiumDressingTextures() {}
  436. //-------------------------------------------------------------------------------------------------
  437. // 001ABC1C
  438. int CGfxEnv::GetNumObjects() { return 0; }
  439. //-------------------------------------------------------------------------------------------------
  440. // 001ABC2C
  441. void CGfxEnv::ObjectsReset() {}
  442. //-------------------------------------------------------------------------------------------------
  443. // 001ABC3C
  444. bool CGfxEnv::UseShadowMapOnStadium() { return 0; }
  445. //-------------------------------------------------------------------------------------------------
  446. // 001ABCB4
  447. CFTTMatrix32 CGfxEnv::SetupCommon(EStadiumSection) {
  448. CFTTMatrix32 ret;
  449. return ret;
  450. }
  451. //-------------------------------------------------------------------------------------------------
  452. // 001AC058
  453. void CGfxEnv::StadiumElementShadowRender(int) {}
  454. //-------------------------------------------------------------------------------------------------
  455. // 001AC260
  456. void CGfxEnv::GetObjectModel(int) {}
  457. //-------------------------------------------------------------------------------------------------
  458. // 001AC274
  459. void CGfxEnv::SetSectionConstructing(TEnvConfig &, EStadiumSection) {}
  460. //-------------------------------------------------------------------------------------------------
  461. // 001AC2A8
  462. void CGfxEnv::SetFrontendExterior(TEnvConfig &) {}
  463. //-------------------------------------------------------------------------------------------------
  464. // 001AC2BC
  465. void CGfxEnv::ObjectAdd(char *, TPoint3D, int, int, float) {}
  466. //-------------------------------------------------------------------------------------------------
  467. // 001AC318
  468. void CGfxEnv::ObjectUpdateLive(int, TEnvConfigObject *) {}
  469. //-------------------------------------------------------------------------------------------------
  470. // 001AC374
  471. void CGfxEnv::InitCameraFlashes() {}
  472. //-------------------------------------------------------------------------------------------------
  473. // 001AC378
  474. void CGfxEnv::SetStadiumName(wchar_t *) {}
  475. //-------------------------------------------------------------------------------------------------
  476. // 001AC484
  477. void CGfxEnv::CreateStadiumDressingBackground(int, int, int, int, int, uint &,
  478. uint &, bool, CFTTTexture *) {}
  479. //-------------------------------------------------------------------------------------------------
  480. // 001AC6F8
  481. void CGfxEnv::PrintStadiumDressingText(wchar_t *, int, int, uint, uint, int) {}
  482. //-------------------------------------------------------------------------------------------------
  483. // 001AC848
  484. void CGfxEnv::GenerateTrainingEnvConfig(TEnvConfig &, int) {}
  485. //-------------------------------------------------------------------------------------------------
  486. // 001AC94C
  487. void CGfxEnv::GenerateNewStadium(TEnvConfig &, int) {}
  488. //-------------------------------------------------------------------------------------------------
  489. // 001AC978 //乱写的
  490. CFTTAABB32 CGfxEnv::GetTotalAABB() {
  491. CFTTAABB32 ret;
  492. ret.filed_0.float_0 = rand();
  493. ret.filed_0.float_4 = rand() / 0xf;
  494. ret.filed_0.float_8 = 1;
  495. int rt = rand();
  496. if (rt > 10) ret.filed_c.float_0 = 1.0;
  497. for (int i = 0; i < rand(); i++) {
  498. printf("dasdsadas");
  499. }
  500. return ret;
  501. }
  502. //-------------------------------------------------------------------------------------------------
  503. // 001ACA28
  504. void CGfxEnv::StadiumElementShadowMapRender(int, CFTTFrustum32 const &) {}
  505. //-------------------------------------------------------------------------------------------------
  506. // 001E6944
  507. void CGfxEnv::SetMatrix(CFTTMatrix32) {}
  508. //-------------------------------------------------------------------------------------------------