// CGfxCrowd - [2020-04-13 11:57:46] #ifndef _CGFXCROWD_H_ #define _CGFXCROWD_H_ #include "CFTTModel.h" #include "FTTVector.h" #include "CStaticAABBTree.h" #include "FTTUPtr.h" #include "CrowdTextureCreationData.h" #include "TDrawCall.h" #include "CGfxCrowdCardGroup.h" #include "CGfxCrowdFlagRender.h" #include "TGfxCrowdState.h" #include "CFTTRenderToTexture.h" #include "TCrowd.h" /* 0019691C CGfxCrowd::CGfxCrowd() 00196A10 CGfxCrowd::~CGfxCrowd() 001968CC CGfxCrowd::Initialise() 001968EC CGfxCrowd::Shutdown() 0019690C CGfxCrowd::Get() 00196AF8 CGfxCrowd::Shut() 00196E72 CGfxCrowd::Init() 00197140 CGfxCrowd::AddStand(CFTTModel *,CFTTMatrix32) 00199D4C CGfxCrowd::GetCapacity(CFTTModel *,CFTTMatrix32) 00199E08 CGfxCrowd::AssessDesirability(TGfxCrowdSeat &) 00199E3C CGfxCrowd::AssessDesirability(TGfxCrowdSeat &,bool) 00199ED0 CGfxCrowd::Distribute(uint) 0019CBA0 CGfxCrowd::UpdateCrowdTextures(uint) 0019F7E4 CGfxCrowd::Render() 0019F85C CGfxCrowd::RenderSteward() 0019F990 CGfxCrowd::RenderStatic() 0019FCC8 CGfxCrowd::RenderDynamic() 001A101C CGfxCrowd::Process() 001A12C8 CGfxCrowd::GetCrowdState(float &,float &,float &) 001A12E6 CGfxCrowd::GetCapacity() 001A12EA CGfxCrowd::GetTextureCreationData() 001A12F0 CGfxCrowd::GetCrowdValue(ECrowdMemberType) 001A12FC CGfxCrowd::SetCrowdValue(ECrowdMemberType,float) 0xCBD4 */ struct TGfxCrowdSection { int un_0; }; struct TGfxCardSection { int un_0; }; struct TGfxCrowdDynamic { int un_0; }; /* Crowd 相关类, 重点检查 Anderson CGfxCrowd.cpp CGfxCrowdCardGroup.cpp CGfxCrowdFlagPhysics.cpp CGfxCrowdFlagRender.cpp CrowdSortB.cpp CrowdSortD.cpp CrowdTextureCreationData.cpp TCrowdMember.cpp TGfxCrowdState.cpp */ class CGfxCrowd { public: CGfxCrowd(); // 0019691C ~CGfxCrowd(); // 00196A10 static void Initialise(); // 001968CC static void Shutdown(); // 001968EC static CGfxCrowd *Get(); // 0019690C static void Shut(); // 00196AF8 void Init(); // 00196E72 void AddStand(CFTTModel *, CFTTMatrix32); // 00197140 void GetCapacity(CFTTModel *, CFTTMatrix32); // 00199D4C void AssessDesirability(TGfxCrowdSeat &); // 00199E08 void AssessDesirability(TGfxCrowdSeat &, bool); // 00199E3C void Distribute(uint); // 00199ED0 void UpdateCrowdTextures(uint); // 0019CBA0 void Render(); // 0019F7E4 void RenderSteward(); // 0019F85C void RenderStatic(); // 0019F990 void RenderDynamic(); // 0019FCC8 void Process(); // 001A101C void GetCrowdState(float &, float &, float &); // 001A12C8 int GetCapacity(); // 001A12E6 CrowdTextureCreationData *GetTextureCreationData(); // 001A12EA float GetCrowdValue(ECrowdMemberType); // 001A12F0 void SetCrowdValue(ECrowdMemberType, float); // 001A12FC FTTVector vec_0; FTTVector vec_14; FTTVector vec_28; FTTVector vec_3C; FTTVector> vec_50; FTTVector> vec_64; FTTVector> vec_78; FTTUPtr aVec_8C[2]; FTTUPtr tUPtr_94; FTTUPtr tUPtr_98; CFTTRenderToTexture *pRender2Tex_9C; CFTTRenderToTexture *pRender2Tex_A0; CFTTRenderToTexture *pRender2Tex_A4; FTTVector vec_A8; FTTVector vec_BC; FTTUPtr tPtrTextureData_D0; int field_D4; int field_D8; uchar field_DC[0xBFF8]; //????????????????????????????????????????????????????? 未知 int field_C0D4; FTTVector vec_C0D8; TGfxCrowdState tCrowd_C0EC[9]; TGfxCrowdState tCrowd_C1A0[32][4]; FTTVector> vec_CBA0; bool b_CBB4; bool b_CBB5; bool b_CBB6; bool b_CBB7; float f_CBB8; uint dCrowdNewShaderID_CBBC[3]; // 00196A3C 此处可以确定是一个数组 float f_CBC8[3]; // 001A12FC static CGfxCrowd *ms_pInstance; }; #endif //_CGFXCROWD_H_