Some material fixes
This commit is contained in:
parent
3f048f3f32
commit
b745db37fe
@ -1133,18 +1133,23 @@ namespace Components
|
|||||||
{
|
{
|
||||||
bool result = Game::Load_Stream(atStreamStart, buffer, size);
|
bool result = Game::Load_Stream(atStreamStart, buffer, size);
|
||||||
|
|
||||||
struct
|
struct material339_s
|
||||||
{
|
{
|
||||||
char drawSurfBegin[4]; // Probably wrong
|
char drawSurfBegin[4]; // Probably wrong
|
||||||
int surfaceTypeBits;
|
int surfaceTypeBits;
|
||||||
const char *name;
|
const char *name;
|
||||||
char drawSurf[8];
|
char drawSurf[6];
|
||||||
|
char gameFlags;
|
||||||
|
char pad;
|
||||||
char sortKey;
|
char sortKey;
|
||||||
char textureAtlasRowCount;
|
char textureAtlasRowCount;
|
||||||
char textureAtlasColumnCount;
|
char textureAtlasColumnCount;
|
||||||
char gameFlags;
|
|
||||||
} material359;
|
} material359;
|
||||||
|
|
||||||
|
static_assert(offsetof(material339_s, gameFlags) == 18, "");
|
||||||
|
static_assert(offsetof(material339_s, sortKey) == 20, "");
|
||||||
|
static_assert(offsetof(material339_s, textureAtlasColumnCount) == 22, "");
|
||||||
|
|
||||||
Game::Material* material = (Game::Material*)buffer;
|
Game::Material* material = (Game::Material*)buffer;
|
||||||
memcpy(&material359, material, sizeof(material359));
|
memcpy(&material359, material, sizeof(material359));
|
||||||
|
|
||||||
@ -1154,8 +1159,19 @@ namespace Components
|
|||||||
material->textureAtlasColumnCount = material359.textureAtlasColumnCount;
|
material->textureAtlasColumnCount = material359.textureAtlasColumnCount;
|
||||||
material->gameFlags = material359.gameFlags;
|
material->gameFlags = material359.gameFlags;
|
||||||
material->surfaceTypeBits = material359.surfaceTypeBits;
|
material->surfaceTypeBits = material359.surfaceTypeBits;
|
||||||
|
|
||||||
memcpy(material->drawSurf, material359.drawSurfBegin, 4); // Probably wrong
|
memcpy(material->drawSurf, material359.drawSurfBegin, 4); // Probably wrong
|
||||||
|
|
||||||
|
material->drawSurf[4] = 0;
|
||||||
|
material->drawSurf[5] = 0;
|
||||||
|
material->drawSurf[6] = 0;
|
||||||
|
|
||||||
|
material->drawSurf[7] = material359.drawSurf[0];
|
||||||
|
material->drawSurf[8] = material359.drawSurf[1];
|
||||||
|
material->drawSurf[9] = material359.drawSurf[2];
|
||||||
|
material->drawSurf[10] = material359.drawSurf[3];
|
||||||
|
material->drawSurf[11] = material359.drawSurf[4];
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1163,7 +1179,7 @@ namespace Components
|
|||||||
{
|
{
|
||||||
bool result = Game::Load_Stream(atStreamStart, buffer, size + 968);
|
bool result = Game::Load_Stream(atStreamStart, buffer, size + 968);
|
||||||
|
|
||||||
int sunDiff = 8;
|
int sunDiff = 8; // Stuff that is part of the sunflare we would overwrite
|
||||||
std::memmove(buffer + 348 + sunDiff, buffer + 1316 + sunDiff, 280 - sunDiff);
|
std::memmove(buffer + 348 + sunDiff, buffer + 1316 + sunDiff, 280 - sunDiff);
|
||||||
AssetHandler::Relocate(buffer + 1316, buffer + 348, 280);
|
AssetHandler::Relocate(buffer + 1316, buffer + 348, 280);
|
||||||
|
|
||||||
@ -1185,7 +1201,8 @@ namespace Components
|
|||||||
std::memmove(varsunflare_t + 12, varsunflare_t + 20, 84);
|
std::memmove(varsunflare_t + 12, varsunflare_t + 20, 84);
|
||||||
|
|
||||||
// Copy the remaining struct data we couldn't copy in LoadGfxWorld
|
// Copy the remaining struct data we couldn't copy in LoadGfxWorld
|
||||||
std::memmove(varsunflare_t + 96, varsunflare_t + 104, 8);
|
char* varGfxWorld = *reinterpret_cast<char**>(0x112A7F4);
|
||||||
|
std::memmove(varGfxWorld + 348, varGfxWorld + 1316, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Zones::InstallPatches(int version)
|
void Zones::InstallPatches(int version)
|
||||||
@ -1347,6 +1364,9 @@ namespace Components
|
|||||||
// TODO: Include them in the dependency zone!
|
// TODO: Include them in the dependency zone!
|
||||||
Utils::Hook::Nop(0x644207, 5);
|
Utils::Hook::Nop(0x644207, 5);
|
||||||
|
|
||||||
|
//Utils::Hook::Nop(0x50AAFE, 5);
|
||||||
|
//Utils::Hook::Nop(0x51B4A6, 5);
|
||||||
|
|
||||||
// Block Mark_pathnode_constant_t
|
// Block Mark_pathnode_constant_t
|
||||||
Utils::Hook::Set<BYTE>(0x4F74B0, 0xC3);
|
Utils::Hook::Set<BYTE>(0x4F74B0, 0xC3);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user