[Structs] Update with correct cbrushside_t structure
This commit is contained in:
parent
d9eb9a273b
commit
307e67b056
@ -30,19 +30,19 @@ namespace Assets
|
||||
Game::cbrushside_t* destSide = &destBrushSide[i];
|
||||
Game::cbrushside_t* side = &brush->brush.brushSide[i];
|
||||
|
||||
if (side->side)
|
||||
if (side->plane)
|
||||
{
|
||||
if (builder->hasPointer(side->side))
|
||||
if (builder->hasPointer(side->plane))
|
||||
{
|
||||
destSide->side = builder->getPointer(side->side);
|
||||
destSide->plane = builder->getPointer(side->plane);
|
||||
}
|
||||
else
|
||||
{
|
||||
buffer->align(Utils::Stream::ALIGN_4);
|
||||
builder->storePointer(side->side);
|
||||
builder->storePointer(side->plane);
|
||||
|
||||
buffer->save(side->side, sizeof(Game::cplane_t));
|
||||
Utils::Stream::ClearPointer(&destSide->side);
|
||||
buffer->save(side->plane, sizeof(Game::cplane_t));
|
||||
Utils::Stream::ClearPointer(&destSide->plane);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -105,21 +105,21 @@ namespace Assets
|
||||
|
||||
for (int i = 0; i < asset->numCBrushSides; ++i)
|
||||
{
|
||||
if (sides[i].side)
|
||||
if (sides[i].plane)
|
||||
{
|
||||
AssertSize(Game::cplane_t, 20);
|
||||
|
||||
if (builder->hasPointer(sides[i].side))
|
||||
if (builder->hasPointer(sides[i].plane))
|
||||
{
|
||||
sides[i].side = builder->getPointer(sides[i].side);
|
||||
sides[i].plane = builder->getPointer(sides[i].plane);
|
||||
}
|
||||
else
|
||||
{
|
||||
buffer->align(Utils::Stream::ALIGN_4);
|
||||
builder->storePointer(sides[i].side);
|
||||
builder->storePointer(sides[i].plane);
|
||||
|
||||
buffer->save(sides[i].side);
|
||||
Utils::Stream::ClearPointer(&sides[i].side);
|
||||
buffer->save(sides[i].plane);
|
||||
Utils::Stream::ClearPointer(&sides[i].plane);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -377,18 +377,18 @@ namespace Assets
|
||||
Game::cbrushside_t* side = buffer->dest<Game::cbrushside_t>();
|
||||
buffer->save(brush->sides);
|
||||
|
||||
if (brush->sides->side)
|
||||
if (brush->sides->plane)
|
||||
{
|
||||
if (builder->hasPointer(brush->sides->side))
|
||||
if (builder->hasPointer(brush->sides->plane))
|
||||
{
|
||||
side->side = builder->getPointer(brush->sides->side);
|
||||
side->plane = builder->getPointer(brush->sides->plane);
|
||||
}
|
||||
else
|
||||
{
|
||||
buffer->align(Utils::Stream::ALIGN_4);
|
||||
builder->storePointer(brush->sides->side);
|
||||
buffer->save(brush->sides->side);
|
||||
Utils::Stream::ClearPointer(&side->side);
|
||||
builder->storePointer(brush->sides->plane);
|
||||
buffer->save(brush->sides->plane);
|
||||
Utils::Stream::ClearPointer(&side->plane);
|
||||
}
|
||||
}
|
||||
|
||||
@ -661,12 +661,10 @@ namespace Assets
|
||||
Components::Logger::Error("invalid plane index");
|
||||
return;
|
||||
}
|
||||
clipMap->cBrushSides[i].side = &clipMap->cPlanes[planeIndex];
|
||||
reader.read<int>(); // materialNum
|
||||
reader.read<short>(); // firstAdjacentSide
|
||||
reader.read<char>(); // edgeCount
|
||||
// not sure how to fill out texInfo and dispInfo
|
||||
// just leave zero for now
|
||||
clipMap->cBrushSides[i].plane = &clipMap->cPlanes[planeIndex];
|
||||
clipMap->cBrushSides[i].materialNum = static_cast<unsigned short>(reader.read<int>()); // materialNum
|
||||
clipMap->cBrushSides[i].firstAdjacentSideOffset = static_cast<char>(reader.read<short>()); // firstAdjacentSide
|
||||
clipMap->cBrushSides[i].edgeCount = reader.read<char>(); // edgeCount
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -182,19 +182,7 @@ namespace Components
|
||||
|
||||
void QuickPatch::testFunc()
|
||||
{
|
||||
Game::DB_EnumXAssets(Game::XAssetType::ASSET_TYPE_CLIPMAP_PVS, [](Game::XAssetHeader header, void* /*unused*/)
|
||||
{
|
||||
Game::clipMap_t* map = header.clipMap;
|
||||
|
||||
for (int i = 0; i < map->numCBrushSides; ++i)
|
||||
{
|
||||
if (map->cBrushSides[i].texInfo > map->numMaterials)
|
||||
{
|
||||
__debugbreak();
|
||||
}
|
||||
}
|
||||
|
||||
}, nullptr, false);
|
||||
}
|
||||
|
||||
QuickPatch::QuickPatch()
|
||||
|
@ -1624,9 +1624,10 @@ namespace Game
|
||||
|
||||
struct cbrushside_t
|
||||
{
|
||||
cplane_t* side;
|
||||
short texInfo;
|
||||
short dispInfo;
|
||||
cplane_t *plane;
|
||||
unsigned __int16 materialNum;
|
||||
char firstAdjacentSideOffset;
|
||||
char edgeCount;
|
||||
};
|
||||
|
||||
struct cbrushWrapper_t
|
||||
@ -2986,8 +2987,27 @@ namespace Game
|
||||
//char flags;
|
||||
};
|
||||
|
||||
struct GfxPackedPlacement
|
||||
{
|
||||
float origin[3];
|
||||
vec3_t/*PackedUnitVec*/ axis[3];
|
||||
float scale;
|
||||
};
|
||||
|
||||
struct GfxStaticModelDrawInst
|
||||
{
|
||||
GfxPackedPlacement placement;
|
||||
XModel *model;
|
||||
unsigned __int16 cullDist;
|
||||
unsigned __int16 lightingHandle;
|
||||
char reflectionProbeIndex;
|
||||
char primaryLightIndex;
|
||||
char flags;
|
||||
char firstMtlSkinIndex;
|
||||
GfxColor groundLighting;
|
||||
unsigned __int16 cacheId[4];
|
||||
};
|
||||
|
||||
struct GfxStaticModelDrawInst;
|
||||
struct GfxWorldDpvsStatic
|
||||
{
|
||||
unsigned int smodelCount;
|
||||
@ -3017,28 +3037,6 @@ namespace Game
|
||||
|
||||
|
||||
#pragma pack(push, 4)
|
||||
struct GfxPackedPlacement
|
||||
{
|
||||
float origin[3];
|
||||
vec3_t/*PackedUnitVec*/ axis[3];
|
||||
float scale;
|
||||
};
|
||||
|
||||
struct GfxStaticModelDrawInst
|
||||
{
|
||||
GfxPackedPlacement placement;
|
||||
|
||||
//char pad[24];
|
||||
|
||||
XModel *model; // 52
|
||||
float cullDist;
|
||||
char reflectionProbeIndex;
|
||||
char primaryLightIndex;
|
||||
unsigned __int16 lightingHandle;
|
||||
char flags;
|
||||
|
||||
char pad2[8];
|
||||
};
|
||||
|
||||
struct GfxPortalWritable
|
||||
{
|
||||
@ -3732,6 +3730,28 @@ namespace Game
|
||||
|
||||
typedef char mapname_t[40];
|
||||
|
||||
struct traceWork_t
|
||||
{
|
||||
/*TraceExtents*/int extents;
|
||||
float delta[3];
|
||||
float deltaLen;
|
||||
float deltaLenSq;
|
||||
float delta2DLen;
|
||||
float delta2DLenSq;
|
||||
float size[3];
|
||||
Bounds bounds;
|
||||
int contents;
|
||||
bool isPoint;
|
||||
bool axialCullOnly;
|
||||
float radius;
|
||||
float offset[3];
|
||||
float radiusOffset[3];
|
||||
float boundingRadius;
|
||||
/*TraceThreadInfo*/ int threadInfo;
|
||||
/*CM_WorldTraceCallbacks*/ void *callbacks;
|
||||
};
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user