World of Might and Magic
0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
|
См. документацию.
30 unsigned char r,
unsigned char g,
51 float b,
float radius,
int a8,
int a9) {
59 if (!bPreserveBloodsplats) {
69 char ClipFlags,
unsigned int uSectorID) {
89 static bool __init_flag1 =
false;
93 for (
uint i = 0; i < 64; ++i) static_AE4F90[i].flt_2C = 0.0
f;
107 for (
int i = 0; i < a5; i++) {
108 memcpy(&static_AE4F90[i], a6, 0x30u);
132 log->
Warning(L
"Error: Failed to get the facet orientation");
138 int point_light_level =
140 light_level, uSectorID,
151 point_light_level, LocationFlags,
157 &static_AE4F60, a5, a6, ClipFlags))
158 log->
Warning(L
"Error: Failed to build decal geometry");
166 int LightLevel,
char LocationFlags,
Bloodsplat *blood,
int DecalXPos,
float DecalRadius,
167 unsigned int uColorMultiplier,
float DecalDotDist,
stru314 *FacetNormals,
signed int a10,
187 unsigned int a8b = 0;
189 if (DecalRadius == 0.0
f)
return 1;
200 decal->
DecalXPos = (
signed __int64)(blood->
x - DecalDotDist * FacetNormals->
Normal.
x);
201 decal->
DecalYPos = (
signed __int64)(blood->
y - DecalDotDist * FacetNormals->
Normal.
y);
202 decal->
DecalZPos = (
signed __int64)(blood->
z - DecalDotDist * FacetNormals->
Normal.
z);
216 (double)decal->
DecalXPos - this->field_30C01C + this->field_30C010;
220 (double)decal->
DecalZPos - this->field_30C024 + this->field_30C018;
227 (double)decal->
DecalYPos - this->field_30C020 - this->field_30C014;
234 (double)decal->
DecalXPos + this->field_30C01C - this->field_30C010;
238 (double)decal->
DecalZPos + this->field_30C024 - this->field_30C018;
245 (double)decal->
DecalYPos + this->field_30C020 + this->field_30C014;
253 for (
uint i = 0; i < 4; ++i) {
279 if (!(uClipFlags & 1)) {
289 if (uClipFlags & 2) {
292 this->pVertices, &a8b);
296 }
else if (uClipFlags & 4) {
299 this->pVertices, &a8b);
304 log->
Warning(L
"Undefined clip flag specified");
308 L
"Lightpoly builder native indoor clipping not implemented");
347 if (v7 <= pBloodsplat->radius) {
380 if (v8 <= pBloodsplat->radius) {
410 unsigned int NumBloodsplats;
431 for (
uint i = 0; i < (
signed int)NumBloodsplats; ++i) {
432 if (uStripType == 4) {
439 }
else if (uStripType == 3) {
478 v22 = WorldMaxZ + 0.5f;
480 v14 = (double)HEXRAYS_SLODWORD(v22);
482 if (v14 <= bloodsplat_container->std__vector_pBloodsplats[i].radius) {
bool ApplyBloodSplatToTerrain(struct Polygon *a2, Vec3_float_ *a3, float *a4, struct RenderVertexSoft *a5, unsigned int uStripType, char a7)
bool ApplyBloodsplatDecals_IndoorFace(unsigned int uFaceID)
void AddBloodsplat(float x, float y, float z, float r, float g, float b, float radius, int a8, int a9)
int _43F5C8_get_point_light_level_with_respect_to_lights(unsigned int uBaseLightLevel, int uSectorID, float x, float y, float z)
std::shared_ptr< Engine > engine
int round_to_int(float x)
RenderVertexSoft pVertices[64]
struct Vec3_float_ vNormal
struct BBox_short_ pBoundingBox
EGLSurface EGLint EGLint y
void Reset(bool bPreserveBloodsplats)
void DrawDecalDebugOutlines()
DecalBuilder_stru0 * field_C18
int bankersRounding(const FloatType &value)
void LightmapNeerClip(struct RenderVertexSoft *pInVertices, int uNumInVertices, struct RenderVertexSoft *pOutVertices, unsigned int *pOutNumVertices)
double _43B570_get_color_mult_by_time()
void debug_outline_sw(struct RenderVertexSoft *a2, unsigned int uNumVertices, unsigned int uDiffuse, float a5)
Bloodsplat std__vector_pBloodsplats[64]
void AddBloodsplat(float x, float y, float z, float r, float g, float b, float radius, int a8, int a9)
static float NegDot(Vec3_float_ *a1, Vec3_float_ *a2, float *a3)
struct Plane_float_ pFacePlane
void Warning(const wchar_t *pFormat,...)
void Project(int x, int y, int z, int *screenspace_x, int *screenspace_y)
char ApplyDecals(int light_level, char a3, struct stru154 *a4, int a5, struct RenderVertexSoft *a6, struct IndoorCameraD3D_Vec4 *a7, char a8, unsigned int uSectorID)
char ApplyDecals_OutdoorFace(ODMFace *pFace)
void _437143(unsigned int uNumInVertices, struct RenderVertexSoft *pOutVertices, struct RenderVertexSoft *pInVertices, signed int *pOutNumVertices)
double GetPolygonMinZ(struct RenderVertexSoft *pVertices, unsigned int uStripType)
uint32_t uColorMultiplier
struct BBox_short_ pBounding
char _49B790_build_decal_geometry(int a2, char a3, Bloodsplat *a4, int a5, float a6, unsigned int uColorMultiplier, float a8, struct stru314 *a9, signed int a10, struct RenderVertexSoft *a11, char uClipFlags)
bool GetFacetOrientation(char polyType, struct Vec3_float_ *a2, struct Vec3_float_ *a3, struct Vec3_float_ *a4)
BloodsplatContainer * bloodsplat_container
unsigned long long field_20
GLboolean GLboolean GLboolean b
GLdouble GLdouble GLdouble r
char _437376(struct stru154 *thisa, struct RenderVertexSoft *a2, unsigned int *pOutNumVertices)
Vec3_float_ vWorldPosition
struct Plane_int_ pFacePlane
LEVEL_TYPE uCurrentlyLoadedLevelType
void ViewTransform(int x, int y, int z, int *transformed_x, int *transformed_y, int *transformed_z)
void DrawDecals(float z_bias)
unsigned int std__vector_pBloodsplats_size
IndoorCameraD3D * pIndoorCameraD3D
void LightmapFarClip(struct RenderVertexSoft *pInVertices, int uNumInVertices, struct RenderVertexSoft *pOutVertices, unsigned int *pOutNumVertices)
double GetPolygonMaxZ(struct RenderVertexSoft *pVertex, unsigned int uStripType)
std::shared_ptr< IRender > render
int std__vector_30B00C[1024]