CGfxEnv.cpp 21 KB

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