view Indoor_stuff.h @ 1318:0ec2f944fccc

Слияние
author Ritor1
date Wed, 26 Jun 2013 14:22:02 +0600
parents 6bbd50bda571
children 78671379d8da
line wrap: on
line source

#pragma once
#include "Render.h"
#include "IndoorCameraD3D.h"



/*  165 */
#pragma pack(push, 1)
struct BspRenderer_stru2
{
  void GetViewportData(__int16 x, int y, __int16 z, int w);

  int _viewport_space_y;
  int _viewport_space_w;
  int field_8;
  int field_C;
  int field_10;
  int field_14;
  __int16 viewport_left_side[480];
  __int16 viewport_right_side[480];
};
#pragma pack(pop)
extern BspRenderer_stru2 stru_F8A590;




/*  164 */
#pragma pack(push, 1)
struct BspRenderer_stru0
{
  //----- (0043F2BF) --------------------------------------------------------
  inline BspRenderer_stru0()
  {
    //_eh_vector_constructor_iterator_(std__vector_0007AC, 24, 4,
    //    (void (__thiscall *)(void *))IndoorCameraD3D_Vec4::IndoorCameraD3D_Vec4,
    //    (void (__thiscall *)(void *))IndoorCameraD3D_Vec4::dtor);
    //for (int i = 0; i < 4; ++i)
    //  pVertices[i].flt_2C = 0.0f;
  }

  //----- (0043F2A9) --------------------------------------------------------
  ~BspRenderer_stru0()
  {
    //_eh_vector_destructor_iterator_(this->std__vector_0007AC, 24, 4, IndoorCameraD3D_Vec4::dtor);
  }

  unsigned __int16 uSectorID;
  unsigned __int16 uViewportX;
  unsigned __int16 uViewportY;
  unsigned __int16 uViewportZ;
  unsigned __int16 uViewportW;
  __int16 field_A;
  BspRenderer_stru2 field_C;
  unsigned __int16 uFaceID;
  __int16 field_7A6;
  unsigned int         viewing_portal_id;             // portal through which we're seeing this node
  IndoorCameraD3D_Vec4 std__vector_0007AC[4];
  RenderVertexSoft     pPortalBounding[4];
};
#pragma pack(pop)




#pragma pack(push, 1)
struct BspFace
{
  unsigned __int16 uFaceID;
  unsigned __int16 uNodeID;
};
#pragma pack(pop)


/*  163 */
#pragma pack(push, 1)
struct BspRenderer // stru170
{
  //----- (0043F282) --------------------------------------------------------
  inline BspRenderer()
  {
   // _eh_vector_constructor_iterator_(field_FA8, 2252, 150,
   //    (void (__thiscall *)(void *))stru170_stru0::stru170_stru0,
   //    (void (__thiscall *)(void *))stru170_stru0::dtor);
    num_faces = 0;
    num_nodes = 0;
    uNumVisibleNotEmptySectors = 0;
  }

  void AddFaceToRenderList_sw(unsigned int node_id, unsigned int uFaceID);
  void AddFaceToRenderList_d3d(unsigned int node_id, unsigned int uFaceID);
  void MakeVisibleSectorList();
  void DrawFaceOutlines();

  unsigned int num_faces;
  //__int16 pFaceIDs[2000];
  BspFace faces[1000];
  //char field_130[3700];
  unsigned int num_nodes;
  BspRenderer_stru0 nodes[150];
  unsigned int uNumVisibleNotEmptySectors;
  unsigned __int16 pVisibleSectorIDs_toDrawDecorsActorsEtcFrom[6];
};
#pragma pack(pop)


extern struct BspRenderer *pBspRenderer; // idb






/*  160 */
#pragma pack(push, 1)
struct stru167
{
  char field_0;
  char field_1;
  char field_2;
  char field_3;
  char field_4;
  char field_5;
  __int16 field_6_rnd_value;
  __int16 field_8_rnd_value;
  __int16 field_A_rnd_value;
  __int16 field_C_time_left;
  __int16 field_E_time_to_live;
  char field_10;
  char field_11;
  char field_12;
  char field_13;
  __int16 bgr16;
  char field_16;
  char field_17;
};
#pragma pack(pop)



/*  363 */
#pragma pack(push, 1)
struct stru167_wrap
{
  void _440F07();
  int Push(__int16 a2, __int16 a3, __int16 a4, int a5, __int16 bgr);
  void _440E91(__int16 x, int y, int z, int a5, __int16 bgr);

  stru167 pElements[100];
  int uNumElements;
  int field_964;
};
#pragma pack(pop)
extern stru167_wrap array_5118E8;











/*  358 */
#pragma pack(push, 1)
struct stru320
{
  int field_0;
  Plane_int_ plane_4;
  Vec3_int_ vec_14;
  Vec3_int_ vec_20;
  unsigned int uCurrentAmbientLightLevel;
  int field_30;
  int field_34;
  int field_38;
  int pDeltaUV[2];
  int field_44;
  int field_48;
  char field_4C[8];
  Vec3_int_ rotated_normal;
  Vec3_int_ vec_60;
  int field_6C;
  Vec3_int_ vec_70;
  int field_7C;
  Vec3_int_ vec_80;
  Vec3_int_ vec_8C;
  int field_98;
  Vec3_int_ vec_9C;
  int field_A8;
  unsigned int uNumLightsApplied;
  int _blv_lights_radii[20];
  int _blv_lights_inv_radii[20];
  int _blv_lights_xs[20];
  int _blv_lights_ys[20];
  int _blv_lights_light_dot_faces[20];
  int field_240;
  int field_244;
  int field_248;
  int field_24C;
  int field_250;
  int field_254;
  int field_258;
  int field_25C;
  int field_260;
  int field_264;
  int field_268;
  int field_26C;
  int field_270;
  int field_274;
  int field_278;
  int field_27C;
  int field_280;
  int field_284;
  int field_288;
  int field_28C;
  int _blv_lights_zs[20];
  float _blv_lights_rs[20];
  float _blv_lights_gs[20];
  float _blv_lights_bs[20];
  char _blv_lights_types[20];
  int field_3E4;
  int field_3E8;
  int field_3EC;
  int field_3F0;
  int field_3F4;
  unsigned int uDefaultAmbientLightLevel;
};
#pragma pack(pop)

extern stru320 stru_F8AD28; // idb








/*  345 */
#pragma pack(push, 1)
struct stru315
{
  int field_0;
  int field_4;
  int field_8;
  int field_C;
  int field_10;
  int field_14;
  int field_18;
  int field_1C;
  int field_20;
  int field_24;
  int field_28;
  int field_2C;
  int field_30;
  unsigned __int16 *field_34_palette;
  unsigned __int16 *pTextureLOD;
  unsigned int *pDepthBuffer;
  unsigned __int16 *pColorBuffer;
};
#pragma pack(pop)





/*  346 */
#pragma pack(push, 1)
struct stru316
{
  int field_0;
  int field_4;
  int field_8;
  int field_C;
  int field_10;
  int field_14;
  int field_18;
  int field_1C;
  int field_20;
  unsigned __int16 *field_24_palette;
};
#pragma pack(pop)






/*  134 */
#pragma pack(push, 1)
struct stru141
{
  int _47050A(int a2);

  int field_0;
  int prolly_normal_d;
  int field_8;
  int field_C;
  int field_10;
  int field_14;
  int field_18;
  int field_1C;
  int field_20;
  int field_24;
  Vec3_int_ normal;
  Vec3_int_ field_34;
  Vec3_int_ normal2;
  int field_4C;
  int field_50;
  int field_54;
  Vec3_int_ field_58;
  int field_64;
  int field_68;
  int field_6C;
  int field_70;
  unsigned int uSectorID;
  unsigned int uFaceID;
  int field_7C;
  int field_80;
  int field_84;
  int field_88;
  int sMaxX;
  int sMinX;
  int sMaxY;
  int sMinY;
  int sMaxZ;
  int sMinZ;
  int field_A4;
};
#pragma pack(pop)
extern stru141 stru_721530;






/*  378 */
#pragma pack(push, 1)
struct stru337_stru0
{
  int field_0;
  int field_4;
  int field_8;
  int field_C;
  int field_10;
};
#pragma pack(pop)



/*  377 */
#pragma pack(push, 1)
struct stru337
{
  stru337_stru0 field_0;
  int field_14;
  int field_18;
  int field_1C;
  int field_20;
  int field_24;
  int field_28;
  int field_2C;
  int field_30;
  stru337_stru0 field_34;
};
#pragma pack(pop)
extern stru337 stru_F81018;


/*  291 */
enum PolygonType : __int8
{
  POLYGON_Invalid = 0x0,
  POLYGON_VerticalWall = 0x1,
  POLYGON_unk = 0x2,
  POLYGON_Floor = 0x3,
  POLYGON_InBetweenFloorAndWall = 0x4,
  POLYGON_Ceiling = 0x5,
  POLYGON_InBetweenCeilingAndWall = 0x6,
};


/*  147 */
#pragma pack(push, 1)

struct stru154
{
  //----- (0049B001) --------------------------------------------------------
  inline stru154()
  {}
  
  //----- (0049B027) --------------------------------------------------------
  inline ~stru154()
  {}

  void GetFacePlaneAndClassify(struct ODMFace *a2, struct BSPVertexBuffer *a3);
  void ClassifyPolygon(struct Vec3_float_ *pNormal, float dist);
  void GetFacePlane(struct ODMFace *pFace, struct BSPVertexBuffer *pVertices, struct Vec3_float_ *pOutNormal, float *pOutDist);


  void (__thiscall ***vdestructor_ptr)(stru154 *, bool);
  Plane_float_ face_plane;
  PolygonType polygonType;
  char field_15;
  char field_16;
  char field_17;
};
#pragma pack(pop)





/*  392 */
#pragma pack(push, 1)
struct stru352
{
  int field_0;
  int field_4;
  int field_8;
  int field_C;
  int field_10;
  int field_14;
  int field_18;
  int field_1C;
  int field_20;
  int field_24;
  int field_28;
  int field_2C;
  int field_30;
  int field_34;
};
#pragma pack(pop)
extern std::array<stru352, 480> stru_F83B80;