view IndoorCameraD3D.h @ 1085:9759bc6d47f3

Merge
author Grumpy7
date Sun, 26 May 2013 00:14:37 +0200
parents 710cf848ad24
children cc9a3a24d61d
line wrap: on
line source

#pragma once




/*  124 */
#pragma pack(push, 1)
struct IndoorCameraD3D_Vec3
{
  //----- (004C0376) --------------------------------------------------------
  inline IndoorCameraD3D_Vec3() {}
  //----- (004C037F) --------------------------------------------------------
  virtual ~IndoorCameraD3D_Vec3() {}
  //----- (004C039C) --------------------------------------------------------
  //void ~IndoorCameraD3D_Vec3() {}

  //void (__thiscall ***vdestructor_ptr)(IndoorCameraD3D_Vec3 *, bool);

  union
  {
    struct
    {
      float x;
      float y;
      float z;
    };
    float v[3];
  };
};
#pragma pack(pop)

/*  125 */
#pragma pack(push, 1)
struct IndoorCameraD3D_Vec4: public IndoorCameraD3D_Vec3
{
  //----- (00498038) --------------------------------------------------------
  inline IndoorCameraD3D_Vec4():
    IndoorCameraD3D_Vec3()
  {}

  //----- (00498069) --------------------------------------------------------
  virtual ~IndoorCameraD3D_Vec4()
  {}

  float dot;
  int _wtf; // sizeof vec4 is 18 and first member is vdtor, but vdtor is already included in vec3 so very weird
};
#pragma pack(pop)



/*  199 */
#pragma pack(push, 1)
struct IndoorCameraD3D_stru3
{
  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;
  float flt_30;
  int field_34;
};
#pragma pack(pop)



/*  197 */
#pragma pack(push, 1)
struct IndoorCameraD3D_stru1
{
  //----- (004363A2) --------------------------------------------------------
  IndoorCameraD3D_stru1()
  {
    this->flt_2C = 0.0;
  }


  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;
  float flt_2C;
};
#pragma pack(pop)

/*  198 */
#pragma pack(push, 1)
struct IndoorCameraD3D_stru2
{
  unsigned int mm7__vector_000004_size;
  IndoorCameraD3D_stru1 mm7__vector_000004[64];
  int field_C04;
  int field_C08;
  int field_C0C;
};
#pragma pack(pop)

/*  123 */
#pragma pack(push, 1)
struct IndoorCameraD3D
{
  IndoorCameraD3D();

  //----- (004363C6) --------------------------------------------------------
  virtual ~IndoorCameraD3D()
  {
    //this->vdestructor_ptr = &stru8_pvdtor;
    //_eh_vector_destructor_iterator_(this->std__vector_000034_prolly_frustrum, 24, 6, IndoorCameraD3D_Vec4::dtor);
    //IndoorCameraD3D_Vec3::dtor(&v1->field_24);
    //IndoorCameraD3D_Vec3::dtor(&v1->field_14);
    //IndoorCameraD3D_Vec3::dtor(&v1->field_4);
  }

  double GetPolygonMaxZ(struct RenderVertexSoft *pVertex, unsigned int uStripType);
  double GetPolygonMinZ(struct RenderVertexSoft *pVertices, unsigned int uStripType);
  struct IDirect3DTexture2 *LoadTextureAndGetHardwarePtr(char *Str1);
  void Project(signed int x, signed int y, signed int z, int *a5, int *a6);
  void Project(struct RenderVertexSoft *pVertices, unsigned int uNumVertices, char a4);
  void _436CDC_mess_with_lightmap__clipflag_2(struct RenderVertexSoft *pInVertices, int uNumInVertices, struct RenderVertexSoft *pOutVertices, unsigned int *pOutNumVertices);
  void _436F09_mess_with_lightmap__clipflag_4(struct RenderVertexSoft *pInVertices, int uNumInVertices, struct RenderVertexSoft *pOutVertices, unsigned int *pOutNumVertices);
  int _437143(unsigned int uNumInVertices, struct RenderVertexSoft *pOutVertices, struct RenderVertexSoft *pInVertices, unsigned int *pOutNumVertices);
  bool _4371C3(struct RenderVertexSoft *pVertices, unsigned int *pOutNumVertices, int _unused);
  bool CalcPortalShape(struct RenderVertexSoft *a1, unsigned int *pOutNumVertices, struct RenderVertexSoft *pVertices, IndoorCameraD3D_Vec4 *a4, signed int uNumVertices, char a6, int _unused);
  char _437376(struct stru154 *thisa, struct RenderVertexSoft *a2, unsigned int *pOutNumVertices);
  void _4374E8_ProllyBuildFrustrum();
  void _437607(IndoorCameraD3D_Vec3 *a1, IndoorCameraD3D_Vec4 *a2);
  void Vec3Transform(const IndoorCameraD3D_Vec3 *pVector, IndoorCameraD3D_Vec3 *pOut);
  void CreateWorldMatrixAndSomeStuff();
  void MatrixMultiply(struct Matrix3x3_float_ *a1, struct Matrix3x3_float_ *a2, struct Matrix3x3_float_ *a3);
  void PrepareAndDrawDebugOutline(struct BLVFace *pFace, unsigned int uDiffuse);
  void debug_outline_sw(struct RenderVertexSoft *a2, unsigned int uNumVertices, unsigned int uDiffuse, float a5);
  void debug_outline_d3d(const struct RenderVertexD3D3 *pLineVertices, unsigned int uNumLines, int uDiffuse, float z_stuff);
  void do_draw_debug_line_sw(struct RenderVertexSoft *pLineBegin, unsigned int uStartDiffuse, struct RenderVertexSoft *pLineEnd, unsigned int uEndDiffuse, unsigned int uOutNumVertices, float z_stuff);
  void do_draw_debug_line_d3d(const struct RenderVertexD3D3 *pLineBegin, unsigned int uDiffuseBegin, const RenderVertexD3D3 *pLineEnd, unsigned int uDiffuseEnd, float z_stuff);
  void _437D4A_draw_some_vertices(float x, float y, float z, unsigned int a5, char a6, float a7);
  void _438141_draw_list_0037C();
  void _438240_draw_lits();
  void Reset_list_0037C();
  bool is_face_faced_to_camera(struct BLVFace *pFace, struct RenderVertexSoft *a2);
  bool GetFacetOrientation(char polyType, struct Vec3_float_ *a2, struct Vec3_float_ *a3, struct Vec3_float_ *a4);
  void ViewTransform(struct RenderVertexSoft *a1a, unsigned int uNumVertices);
  bool IsCulled(struct BLVFace *pFace);
  void ViewTransfrom_OffsetUV(struct RenderVertexSoft *pVertices, unsigned int uNumVertices, struct RenderVertexSoft *pOutVertices, struct stru320 *a5);
  char ApplyViewTransform_TrueIfStillVisible(int x, int y, int z, signed int *pOutX, int *pOutZ, int *pOutY, char bDoNotShow);
  float GetPickDepth();

  void DebugDrawPortal(struct BLVFace *pFace);

  //void (__thiscall ***vdestructor_ptr)(IndoorCameraD3D *, bool);
  IndoorCameraD3D_Vec3 field_4[3];
  //IndoorCameraD3D_Vec3 field_14;
  //IndoorCameraD3D_Vec3 field_24;
  IndoorCameraD3D_Vec4 std__vector_000034_prolly_frustrum[6];
  float fov;
  float screenCenterX;
  float screenCenterY;
  float fov_x;
  float fov_y;
  float inv_fov;
  float blv_party_x;
  float blv_party_y;
  float blv_party_z;
  char field_E8[32];
  float field_108;
  float blv_party_x_2;
  float blv_party_y_2;
  float blv_party_z_2;
  char field_118[32];
  float field_138;
  char field_13C[44];
  float field_168;
  char field_16C[44];
  float field_198;
  char field_19C[44];
  float field_1C8;
  char field_1CC[44];
  float field_1F8;
  char field_1FC[44];
  float field_228;
  char field_22C[44];
  float field_258;
  char field_25C[44];
  float field_288;
  char field_28C[44];
  float field_2B8;
  float field_2BC;
  float field_2C0;
  float field_2C4;
  char field_2C8[32];
  float field_2E8;
  float field_2EC;
  float field_2F0;
  float field_2F4;
  char field_2F8[32];
  float field_318;
  float field_31C;
  float field_320;
  float field_324;
  char field_328[32];
  float field_348;
  float field_34C;
  float field_350;
  float field_354;
  char field_358[32];
  float field_378;
  IndoorCameraD3D_stru3 list_0037C[16384];
  unsigned int list_0037C_size;
  IndoorCameraD3D_stru2 list_E0380[256];
  int list_E0380_size;
};
#pragma pack(pop)