#pragma once #define MLR_MLRCULTURSHAPE_HPP #include #include namespace MidLevelRenderer { struct MLRCultural { Stuff::Point3D loc; BYTE yaw; BYTE type; }; //########################################################################## //####################### MLRCulturShape ############################# //########################################################################## class MLRCulturShape : public MLRShape { friend class MLRClipper; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Initialization // public: static void InitializeClass(); static void TerminateClass(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Constructors/Destructors // protected: MLRCulturShape( Stuff::MemoryStream *stream, int version ); ~MLRCulturShape(); public: MLRCulturShape(); static MLRCulturShape* Make( Stuff::MemoryStream *stream, int version ); void Save(Stuff::MemoryStream *stream); void SetCenterInWorld(Stuff::Scalar ciwx, Stuff::Scalar ciwz, Stuff::Scalar r) { Check_Object(this); centerInWorldX = ciwx; centerInWorldZ = ciwz; radius = r; } void FadeValue(Stuff::Scalar start, Stuff::Scalar end) { Check_Object(this); fadeOutStart = start; fadeOutEnd = end;} void AssignCulturalData(MLRCultural *data, int count) { Check_Object(this); culturals.AssignData(data, count); } static MLRShape* culturalRevolution; static void IsDayTime(bool b=true) { isDayTime = b; } static void SetColor(Stuff::RGBAColor day, Stuff::RGBAColor night) { dayColor = day; nightColor = night; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Class Data Support // public: static ClassData *DefaultData; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Testing // public: void TestInstance() const {}; protected: static Stuff::RGBAColor dayColor, nightColor; static bool isDayTime; Stuff::Scalar centerInWorldX, centerInWorldZ, radius; Stuff::Scalar fadeOutStart, fadeOutEnd; Stuff::ReadOnlyArrayOf culturals; static int lastUsedMesh, lastUsedVertex, nrOfNaturalMeshes; static Stuff::DynamicArrayOf *theNaturals; static Stuff::DynamicArrayOf *theNaturalCoords; static Stuff::DynamicArrayOf *theNaturalTexCoords; static Stuff::DynamicArrayOf *theNaturalIndicies; static Stuff::DynamicArrayOf *theNaturalColors; }; }