gAnimTable and Spool_FindTextureEntry

This commit is contained in:
krystalgamer 2024-09-24 19:06:57 +02:00
parent 2e4119aa0e
commit 62b047f399
4 changed files with 18 additions and 19 deletions

View File

@ -9,7 +9,7 @@
#include "ps2lowsfx.h"
i32 gAnimTable[0x1D];
SAnimFrame* gAnimTable[0x1D];
EXPORT CChunkBit* ChunkBitList;
EXPORT CGlow* GlowList;
CTextBox* TextBoxList = 0;
@ -728,7 +728,8 @@ void CFT4Bit::SetAnim(int a2){
print_if_false(a2 >= 0 && !((unsigned int)a2 >= maxANimTableEntry), "Bad lookup value sent to SetAnim");
print_if_false(this->mDeleteAnimOnDestruction == 0, "mDeleteAnimOnDestruction set?");
int v4 = gAnimTable[a2];
// @FIXME
int v4 = reinterpret_cast<i32>(gAnimTable[a2]);
this->mPSXAnim = reinterpret_cast<SCFT4BitTexture*>(v4);
v5 = *(char *)(v4 - 4);
this->field_53 = 0;

12
bit.h
View File

@ -8,6 +8,16 @@
#include "texture.h"
#include "ps2funcs.h"
struct SAnimFrame
{
char OffX;
char OffY;
unsigned char Width;
unsigned char Height;
Texture *pTexture;
};
EXPORT extern u32 SparkSize;
EXPORT extern i32 gTimerRelated;
@ -373,7 +383,7 @@ EXPORT void Bit_UpdateQuickAnimLookups(void);
EXPORT extern CTextBox* TextBoxList;
EXPORT extern i32 gAnimTable[0x1D];
EXPORT extern SAnimFrame* gAnimTable[0x1D];
void validate_CFlatBit(void);
void validate_CFT4Bit(void);

View File

@ -9,15 +9,6 @@
#include "texture.h"
struct SAnimFrame
{
char OffX;
char OffY;
unsigned char Width;
unsigned char Height;
Texture *pTexture;
};
struct POLY_FT4
{
};

View File

@ -52,7 +52,6 @@ EXPORT i32 lowGraphics;
EXPORT i32 CurrentSuit;
EXPORT u8 gGiveDefaultTexture;
EXPORT i32** gUnknownRelatedToFind;
EXPORT TextureEntry gTextureEntries[256];
@ -846,8 +845,7 @@ void Spool_ClearAllPSXs(void)
Spool_RemoveUnusedTextures();
}
// @NotOk
// understand the unknown variable
// @Ok
Texture *Spool_FindTextureEntry(u32 checksum)
{
Texture *pSearch;
@ -864,15 +862,14 @@ Texture *Spool_FindTextureEntry(u32 checksum)
if (!gGiveDefaultTexture)
{
print_if_false(0, "Can't find texture from checksum %ld", checksum);
return reinterpret_cast<Texture*>(gUnknownRelatedToFind[1]);
return gAnimTable[13]->pTexture;
}
}
return pSearch;
}
// @NotOk
// understand th ereturn for index >= 256
// @Ok
Texture *Spool_FindTextureEntry(char *name)
{
char localName[256];
@ -888,7 +885,7 @@ Texture *Spool_FindTextureEntry(char *name)
}
if (index >= 256)
return reinterpret_cast<Texture*>(gUnknownRelatedToFind[1]);
return gAnimTable[13]->pTexture;
return Spool_FindTextureEntry(gTextureEntries[index].Checksum);
}