MyFTTUPtr.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. // FTTUPtr - [2020-04-13 11:57:47]
  2. #ifndef _MyFTTUPTR_H_
  3. #define _MyFTTUPTR_H_
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include "TCrowdMember.h"
  7. /*
  8. 00191918 FTTUPtr<CGfxAdboard>::~FTTUPtr()
  9. 00191970 FTTUPtr<CGfxAdboard>::operator=(CGfxAdboard*)
  10. 00196CA2 FTTUPtr<CrowdTextureCreationData>::~FTTUPtr()
  11. 00196D0E FTTUPtr<CFTTRenderHelper>::~FTTUPtr()
  12. 00196E7C FTTUPtr<CFTTRenderHelper>::operator=(CFTTRenderHelper*)
  13. FTTUPtr_CFTTRenderHelper
  14. 0019BBCC FTTUPtr<CGfxCrowdFlagPhysics>::~FTTUPtr()
  15. 0019BFE8 FTTUPtr<CGfxCrowdCardGroup>::~FTTUPtr()
  16. 0019C2F0 FTTUPtr<CGfxCrowdFlagRender>::~FTTUPtr()
  17. 0019EAC4 FTTUPtr<CrowdTextureCreationData>::operator=(CrowdTextureCreationData*)
  18. 0019F674 FTTUPtr<FTTAtlasGenerator>::operator=(FTTAtlasGenerator*)
  19. 001A329C FTTUPtr<CGfxCloth>::operator=(CGfxCloth*)
  20. 001A4CC8 FTTUPtr<FTTAtlasGenerator>::~FTTUPtr()
  21. 001A67B0 FTTUPtr<CGfxCloth>::~FTTUPtr()
  22. 001AE1CC FTTUPtr<CGfxPostProcess>::~FTTUPtr()
  23. 001B92D0 FTTUPtr<CFTTTexture>::Delete()
  24. 001C3C68 FTTUPtr<CFTTBatchModelManager>::~FTTUPtr()
  25. 001C40D4 FTTUPtr<CFTTBatchModelManager>::operator=(CFTTBatchModelManager*)
  26. FTTUPtr_CFTTTexture
  27. 001A4A74 FTTUPtr<FTTAtlasGeneratorNode []>::operator=(FTTAtlasGeneratorNode*)
  28. */
  29. template <typename T, int N>
  30. class MyFTTUPtr {
  31. public:
  32. MyFTTUPtr(T* p) { pType_0 = p; };
  33. MyFTTUPtr(){};
  34. ~MyFTTUPtr() { delete[] pType_0; };
  35. MyFTTUPtr<T,N>* operator=(T* other) {
  36. if (N > 1) {
  37. if (pType_0 != nullptr) {
  38. delete[] pType_0;
  39. }
  40. } else
  41. delete pType_0;
  42. pType_0 = other;
  43. return this;
  44. }
  45. // FTTUPtr<T>* operator=(T** other) {
  46. // if (pType_0 != nullptr) {
  47. // delete[] pType_0;
  48. // }
  49. // pType_0 = *other;
  50. // return this;
  51. // }
  52. void Delete() {
  53. if (N > 1) {
  54. if (pType_0 != nullptr) {
  55. delete[] pType_0;
  56. }
  57. } else {
  58. delete pType_0;
  59. }
  60. pType_0 = nullptr;
  61. }
  62. T* pType_0;
  63. };
  64. #endif //#define _MyFTTUPTR_H_