Increase build objects count max size

# Conflicts:
#	source/blood/src/mapedit.cpp
This commit is contained in:
nukeykt 2019-06-28 21:24:46 +09:00 committed by Christoph Oelckers
parent 4e0a563cfe
commit 381f5dcac2
10 changed files with 92 additions and 90 deletions

View file

@ -4123,8 +4123,8 @@ void ProcessTouchObjects(spritetype *pSprite, int nXSprite)
PLAYER *pPlayer = NULL; PLAYER *pPlayer = NULL;
if (IsPlayerSprite(pSprite)) if (IsPlayerSprite(pSprite))
pPlayer = &gPlayer[pSprite->type-kDudePlayer1]; pPlayer = &gPlayer[pSprite->type-kDudePlayer1];
int nHitSprite = pSpriteHit->ceilhit & 0x1fff; int nHitSprite = pSpriteHit->ceilhit & 0x3fff;
switch (pSpriteHit->ceilhit&0xe000) switch (pSpriteHit->ceilhit&0xc000)
{ {
case 0x8000: case 0x8000:
break; break;
@ -4214,8 +4214,8 @@ void ProcessTouchObjects(spritetype *pSprite, int nXSprite)
} }
break; break;
} }
nHitSprite = pSpriteHit->hit & 0x1fff; nHitSprite = pSpriteHit->hit & 0x3fff;
switch (pSpriteHit->hit&0xe000) switch (pSpriteHit->hit&0xc000)
{ {
case 0x8000: case 0x8000:
break; break;
@ -4287,8 +4287,8 @@ void ProcessTouchObjects(spritetype *pSprite, int nXSprite)
} }
break; break;
} }
nHitSprite = pSpriteHit->florhit & 0x1fff; nHitSprite = pSpriteHit->florhit & 0x3fff;
switch (pSpriteHit->florhit&0xe000) switch (pSpriteHit->florhit&0xc000)
{ {
case 0x8000: case 0x8000:
break; break;
@ -4468,9 +4468,9 @@ int MoveThing(spritetype *pSprite)
dassert(nSector >= 0 && nSector < kMaxSectors); dassert(nSector >= 0 && nSector < kMaxSectors);
ChangeSpriteSect(nSprite, nSector); ChangeSpriteSect(nSprite, nSector);
} }
if ((gSpriteHit[nXSprite].hit&0xe000) == 0x8000) if ((gSpriteHit[nXSprite].hit&0xc000) == 0x8000)
{ {
int nHitWall = gSpriteHit[nXSprite].hit&0x1fff; int nHitWall = gSpriteHit[nXSprite].hit&0x3fff;
actWallBounceVector((int*)&xvel[nSprite], (int*)&yvel[nSprite], nHitWall, pThingInfo->at7); actWallBounceVector((int*)&xvel[nSprite], (int*)&yvel[nSprite], nHitWall, pThingInfo->at7);
switch (pSprite->type) switch (pSprite->type)
{ {
@ -4600,9 +4600,9 @@ int MoveThing(spritetype *pSprite)
{ {
int nVel = approxDist(xvel[nSprite], yvel[nSprite]); int nVel = approxDist(xvel[nSprite], yvel[nSprite]);
int nVelClipped = ClipHigh(nVel, 0x11111); int nVelClipped = ClipHigh(nVel, 0x11111);
if ((floorHit & 0xe000) == 0xc000) if ((floorHit & 0xc000) == 0xc000)
{ {
int nHitSprite = floorHit & 0x1fff; int nHitSprite = floorHit & 0x3fff;
if ((sprite[nHitSprite].cstat & 0x30) == 0) if ((sprite[nHitSprite].cstat & 0x30) == 0)
{ {
xvel[nSprite] += mulscale(4, pSprite->x - sprite[nHitSprite].x, 2); xvel[nSprite] += mulscale(4, pSprite->x - sprite[nHitSprite].x, 2);
@ -4670,11 +4670,11 @@ void MoveDude(spritetype *pSprite)
dassert(nSector >= 0); dassert(nSector >= 0);
pSprite->cstat = bakCstat; pSprite->cstat = bakCstat;
} }
switch (gSpriteHit[nXSprite].hit&0xe000) switch (gSpriteHit[nXSprite].hit&0xc000)
{ {
case 0xc000: case 0xc000:
{ {
int nHitSprite = gSpriteHit[nXSprite].hit&0x1fff; int nHitSprite = gSpriteHit[nXSprite].hit&0x3fff;
spritetype *pHitSprite = &sprite[nHitSprite]; spritetype *pHitSprite = &sprite[nHitSprite];
XSPRITE *pHitXSprite = NULL; XSPRITE *pHitXSprite = NULL;
// Should be pHitSprite here // Should be pHitSprite here
@ -4698,7 +4698,7 @@ void MoveDude(spritetype *pSprite)
} }
case 0x8000: case 0x8000:
{ {
int nHitWall = gSpriteHit[nXSprite].hit&0x1fff; int nHitWall = gSpriteHit[nXSprite].hit&0x3fff;
walltype *pHitWall = &wall[nHitWall]; walltype *pHitWall = &wall[nHitWall];
XWALL *pHitXWall = NULL; XWALL *pHitXWall = NULL;
if (pHitWall->extra > 0) if (pHitWall->extra > 0)
@ -5108,9 +5108,9 @@ void MoveDude(spritetype *pSprite)
pXSprite->height = ClipLow(floorZ-bottom, 0)>>8; pXSprite->height = ClipLow(floorZ-bottom, 0)>>8;
if (xvel[nSprite] || yvel[nSprite]) if (xvel[nSprite] || yvel[nSprite])
{ {
if ((floorHit & 0xe000) == 0xc000) if ((floorHit & 0xc000) == 0xc000)
{ {
int nHitSprite = floorHit & 0x1fff; int nHitSprite = floorHit & 0x3fff;
if ((sprite[nHitSprite].cstat & 0x30) == 0) if ((sprite[nHitSprite].cstat & 0x30) == 0)
{ {
xvel[nSprite] += mulscale(4, pSprite->x - sprite[nHitSprite].x, 2); xvel[nSprite] += mulscale(4, pSprite->x - sprite[nHitSprite].x, 2);
@ -5210,13 +5210,13 @@ int MoveMissile(spritetype *pSprite)
} }
if (vdx) if (vdx)
{ {
int nHitSprite = vdx & 0x1fff; int nHitSprite = vdx & 0x3fff;
if ((vdx&0xe000) == 0xc000) if ((vdx&0xc000) == 0xc000)
{ {
gHitInfo.hitsprite = nHitSprite; gHitInfo.hitsprite = nHitSprite;
vdi = 3; vdi = 3;
} }
else if ((vdx & 0xe000) == 0x8000) else if ((vdx & 0xc000) == 0x8000)
{ {
gHitInfo.hitwall = nHitSprite; gHitInfo.hitwall = nHitSprite;
if (wall[nHitSprite].nextsector == -1) if (wall[nHitSprite].nextsector == -1)
@ -5615,7 +5615,7 @@ void actProcessSprites(void)
} }
} }
actAirDrag(pSprite, 128); actAirDrag(pSprite, 128);
if ((pSprite->index>>8) == (gFrame&15) && (pSprite->hitag&2)) if (((pSprite->index>>8)&15) == (gFrame&15) && (pSprite->hitag&2))
pSprite->hitag |= 4; pSprite->hitag |= 4;
if ((pSprite->hitag&4) || xvel[nSprite] || yvel[nSprite] || zvel[nSprite] || if ((pSprite->hitag&4) || xvel[nSprite] || yvel[nSprite] || zvel[nSprite] ||
velFloor[pSprite->sectnum] || velCeil[pSprite->sectnum]) velFloor[pSprite->sectnum] || velCeil[pSprite->sectnum])
@ -5637,11 +5637,11 @@ void actProcessSprites(void)
break; break;
case kGDXThingThrowableRock: case kGDXThingThrowableRock:
seqSpawn(24, 3, nXSprite, -1); seqSpawn(24, 3, nXSprite, -1);
if ((hit & 0xe000) == 0xc000) if ((hit & 0xc000) == 0xc000)
{ {
pSprite->xrepeat = 32; pSprite->xrepeat = 32;
pSprite->yrepeat = 32; pSprite->yrepeat = 32;
int nObject = hit & 0x1fff; int nObject = hit & 0x3fff;
dassert(nObject >= 0 && nObject < kMaxSprites); dassert(nObject >= 0 && nObject < kMaxSprites);
spritetype * pObject = &sprite[nObject]; spritetype * pObject = &sprite[nObject];
actDamageSprite(actSpriteOwnerToSpriteId(pSprite), pObject, DAMAGE_TYPE_0, pXSprite->data1); actDamageSprite(actSpriteOwnerToSpriteId(pSprite), pObject, DAMAGE_TYPE_0, pXSprite->data1);
@ -5649,24 +5649,24 @@ void actProcessSprites(void)
break; break;
case 421: case 421:
seqSpawn(24, 3, nXSprite, -1); seqSpawn(24, 3, nXSprite, -1);
if ((hit&0xe000) == 0xc000) if ((hit&0xc000) == 0xc000)
{ {
int nObject = hit & 0x1fff; int nObject = hit & 0x3fff;
dassert(nObject >= 0 && nObject < kMaxSprites); dassert(nObject >= 0 && nObject < kMaxSprites);
spritetype *pObject = &sprite[nObject]; spritetype *pObject = &sprite[nObject];
actDamageSprite(actSpriteOwnerToSpriteId(pSprite), pObject, DAMAGE_TYPE_0, 12); actDamageSprite(actSpriteOwnerToSpriteId(pSprite), pObject, DAMAGE_TYPE_0, 12);
} }
break; break;
case 430: case 430:
if ((hit&0xe000) == 0x4000) if ((hit&0xc000) == 0x4000)
{ {
sub_2A620(actSpriteOwnerToSpriteId(pSprite), pSprite->x, pSprite->y, pSprite->z, pSprite->sectnum, 200, 1, 20, DAMAGE_TYPE_3, 6, 0, 0, 0); sub_2A620(actSpriteOwnerToSpriteId(pSprite), pSprite->x, pSprite->y, pSprite->z, pSprite->sectnum, 200, 1, 20, DAMAGE_TYPE_3, 6, 0, 0, 0);
evPost(pSprite->index, 3, 0, CALLBACK_ID_19); evPost(pSprite->index, 3, 0, CALLBACK_ID_19);
} }
else else
{ {
int nObject = hit & 0x1fff; int nObject = hit & 0x3fff;
if ((hit&0xe000) != 0xc000 && (nObject < 0 || nObject >= 4096)) if ((hit&0xc000) != 0xc000 && (nObject < 0 || nObject >= 4096))
break; break;
dassert(nObject >= 0 && nObject < kMaxSprites); dassert(nObject >= 0 && nObject < kMaxSprites);
spritetype *pObject = &sprite[nObject]; spritetype *pObject = &sprite[nObject];
@ -5676,8 +5676,8 @@ void actProcessSprites(void)
break; break;
case 429: case 429:
{ {
int nObject = hit & 0x1fff; int nObject = hit & 0x3fff;
if ((hit&0xe000) != 0xc000 && (nObject < 0 || nObject >= 4096)) if ((hit&0xc000) != 0xc000 && (nObject < 0 || nObject >= 4096))
break; break;
dassert(nObject >= 0 && nObject < kMaxSprites); dassert(nObject >= 0 && nObject < kMaxSprites);
int UNUSED(nOwner) = actSpriteOwnerToSpriteId(pSprite); int UNUSED(nOwner) = actSpriteOwnerToSpriteId(pSprite);

View file

@ -79,8 +79,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
const char* AppProperName = APPNAME; const char* AppProperName = APPNAME;
const char* AppTechnicalName = APPBASENAME; const char* AppTechnicalName = APPBASENAME;
char qsprite_filler[kMaxSprites], qsector_filler[kMaxSectors];
char SetupFilename[BMAX_PATH] = SETUPFILENAME; char SetupFilename[BMAX_PATH] = SETUPFILENAME;
int32_t gNoSetup = 0, gCommandSetup = 0; int32_t gNoSetup = 0, gCommandSetup = 0;
@ -170,43 +168,6 @@ void M32RunScript(const char *s)
UNREFERENCED_PARAMETER(s); UNREFERENCED_PARAMETER(s);
} }
static const char *_module;
static int _line;
void _SetErrorLoc(const char *pzFile, int nLine)
{
_module = pzFile;
_line = nLine;
}
void _ThrowError(const char *pzFormat, ...)
{
char buffer[256];
va_list args;
va_start(args, pzFormat);
vsprintf(buffer, pzFormat, args);
initprintf("%s(%i): %s\n", _module, _line, buffer);
char titlebuf[256];
Bsprintf(titlebuf, APPNAME " %s", s_buildRev);
wm_msgbox(titlebuf, "%s(%i): %s\n", _module, _line, buffer);
Bfflush(NULL);
QuitGame();
}
void __dassert(const char * pzExpr, const char * pzFile, int nLine)
{
initprintf("Assertion failed: %s in file %s at line %i\n", pzExpr, pzFile, nLine);
char titlebuf[256];
Bsprintf(titlebuf, APPNAME " %s", s_buildRev);
wm_msgbox(titlebuf, "Assertion failed: %s in file %s at line %i\n", pzExpr, pzFile, nLine);
Bfflush(NULL);
exit(0);
}
void ShutDown(void) void ShutDown(void)
{ {
if (!in3dmode()) if (!in3dmode())

View file

@ -45,6 +45,7 @@ extern int g_useCwd;
void _SetErrorLoc(const char *pzFile, int nLine); void _SetErrorLoc(const char *pzFile, int nLine);
void _ThrowError(const char *pzFormat, ...); void _ThrowError(const char *pzFormat, ...);
void __dassert(const char *pzExpr, const char *pzFile, int nLine); void __dassert(const char *pzExpr, const char *pzFile, int nLine);
void QuitGame(void);
#define ThrowError(...) \ #define ThrowError(...) \
{ \ { \
@ -54,9 +55,9 @@ void __dassert(const char *pzExpr, const char *pzFile, int nLine);
#define dassert(x) if (!(x)) __dassert(#x,__FILE__,__LINE__) #define dassert(x) if (!(x)) __dassert(#x,__FILE__,__LINE__)
#define kMaxSectors 1024 #define kMaxSectors MAXSECTORS
#define kMaxWalls 8192 #define kMaxWalls MAXWALLS
#define kMaxSprites 4096 #define kMaxSprites MAXSPRITES
#define kMaxTiles MAXTILES #define kMaxTiles MAXTILES
#define kMaxStatus MAXSTATUS #define kMaxStatus MAXSTATUS
@ -358,8 +359,6 @@ struct Aim {
#pragma pack(pop) #pragma pack(pop)
extern char qsprite_filler[], qsector_filler[];
inline int ksgnf(float f) inline int ksgnf(float f)
{ {
if (f < 0) if (f < 0)

View file

@ -43,6 +43,8 @@ SPRITEHIT gSpriteHit[kMaxXSprites];
int xvel[kMaxSprites], yvel[kMaxSprites], zvel[kMaxSprites]; int xvel[kMaxSprites], yvel[kMaxSprites], zvel[kMaxSprites];
char qsprite_filler[kMaxSprites], qsector_filler[kMaxSectors];
int gVisibility; int gVisibility;
const char *gItemText[] = { const char *gItemText[] = {
@ -246,7 +248,8 @@ void qinitspritelists(void) // Replace
{ {
headspritestat[i] = -1; headspritestat[i] = -1;
} }
for (short i = 0; i < kMaxSprites; i++) int const nMaxSprites = bVanilla ? 4096 : kMaxSprites;
for (short i = 0; i < nMaxSprites; i++)
{ {
sprite[i].sectnum = -1; sprite[i].sectnum = -1;
sprite[i].index = -1; sprite[i].index = -1;

View file

@ -263,6 +263,8 @@ extern XWALL xwall[kMaxXWalls];
extern SPRITEHIT gSpriteHit[kMaxXSprites]; extern SPRITEHIT gSpriteHit[kMaxXSprites];
extern char qsprite_filler[kMaxSprites], qsector_filler[kMaxSectors];
extern int xvel[kMaxSprites], yvel[kMaxSprites], zvel[kMaxSprites]; extern int xvel[kMaxSprites], yvel[kMaxSprites], zvel[kMaxSprites];
extern int gVisibility; extern int gVisibility;

View file

@ -682,9 +682,9 @@ void GetZRange(spritetype *pSprite, int *ceilZ, int *ceilHit, int *floorZ, int *
int32_t nTemp1, nTemp2; int32_t nTemp1, nTemp2;
pSprite->cstat &= ~257; pSprite->cstat &= ~257;
getzrange_old(pSprite->x, pSprite->y, pSprite->z, pSprite->sectnum, (int32_t*)ceilZ, (int32_t*)ceilHit, (int32_t*)floorZ, (int32_t*)floorHit, nDist, nMask); getzrange_old(pSprite->x, pSprite->y, pSprite->z, pSprite->sectnum, (int32_t*)ceilZ, (int32_t*)ceilHit, (int32_t*)floorZ, (int32_t*)floorHit, nDist, nMask);
if (((*floorHit) & 0xe000) == 0x4000) if (((*floorHit) & 0xc000) == 0x4000)
{ {
int nSector = (*floorHit) & 0x1fff; int nSector = (*floorHit) & 0x3fff;
if ((nMask & 0x2000) == 0 && (sector[nSector].floorstat & 1)) if ((nMask & 0x2000) == 0 && (sector[nSector].floorstat & 1))
*floorZ = 0x7fffffff; *floorZ = 0x7fffffff;
if (sector[nSector].extra > 0) if (sector[nSector].extra > 0)
@ -702,9 +702,9 @@ void GetZRange(spritetype *pSprite, int *ceilZ, int *ceilHit, int *floorZ, int *
*floorZ -= sprite[nLink].z - sprite[nSprite].z; *floorZ -= sprite[nLink].z - sprite[nSprite].z;
} }
} }
if (((*ceilHit) & 0xe000) == 0x4000) if (((*ceilHit) & 0xc000) == 0x4000)
{ {
int nSector = (*ceilHit) & 0x1fff; int nSector = (*ceilHit) & 0x3fff;
if ((nMask & 0x1000) == 0 && (sector[nSector].ceilingstat & 1)) if ((nMask & 0x1000) == 0 && (sector[nSector].ceilingstat & 1))
*ceilZ = 0x80000000; *ceilZ = 0x80000000;
if (gLowerLink[nSector] >= 0) if (gLowerLink[nSector] >= 0)
@ -724,9 +724,9 @@ void GetZRangeAtXYZ(int x, int y, int z, int nSector, int *ceilZ, int *ceilHit,
{ {
int32_t nTemp1, nTemp2; int32_t nTemp1, nTemp2;
getzrange_old(x, y, z, nSector, (int32_t*)ceilZ, (int32_t*)ceilHit, (int32_t*)floorZ, (int32_t*)floorHit, nDist, nMask); getzrange_old(x, y, z, nSector, (int32_t*)ceilZ, (int32_t*)ceilHit, (int32_t*)floorZ, (int32_t*)floorHit, nDist, nMask);
if (((*floorHit) & 0xe000) == 0x4000) if (((*floorHit) & 0xc000) == 0x4000)
{ {
int nSector = (*floorHit) & 0x1fff; int nSector = (*floorHit) & 0x3fff;
if ((nMask & 0x2000) == 0 && (sector[nSector].floorstat & 1)) if ((nMask & 0x2000) == 0 && (sector[nSector].floorstat & 1))
*floorZ = 0x7fffffff; *floorZ = 0x7fffffff;
if (sector[nSector].extra > 0) if (sector[nSector].extra > 0)
@ -744,9 +744,9 @@ void GetZRangeAtXYZ(int x, int y, int z, int nSector, int *ceilZ, int *ceilHit,
*floorZ -= sprite[nLink].z - sprite[nSprite].z; *floorZ -= sprite[nLink].z - sprite[nSprite].z;
} }
} }
if (((*ceilHit) & 0xe000) == 0x4000) if (((*ceilHit) & 0xc000) == 0x4000)
{ {
int nSector = (*ceilHit) & 0x1fff; int nSector = (*ceilHit) & 0x3fff;
if ((nMask & 0x1000) == 0 && (sector[nSector].ceilingstat & 1)) if ((nMask & 0x1000) == 0 && (sector[nSector].ceilingstat & 1))
*ceilZ = 0x80000000; *ceilZ = 0x80000000;
if (gLowerLink[nSector] >= 0) if (gLowerLink[nSector] >= 0)

View file

@ -42,6 +42,43 @@ char gVersionStringBuf[16];
Resource gSysRes; Resource gSysRes;
static const char *_module;
static int _line;
void _SetErrorLoc(const char *pzFile, int nLine)
{
_module = pzFile;
_line = nLine;
}
void _ThrowError(const char *pzFormat, ...)
{
char buffer[256];
va_list args;
va_start(args, pzFormat);
vsprintf(buffer, pzFormat, args);
initprintf("%s(%i): %s\n", _module, _line, buffer);
char titlebuf[256];
Bsprintf(titlebuf, APPNAME " %s", s_buildRev);
wm_msgbox(titlebuf, "%s(%i): %s\n", _module, _line, buffer);
Bfflush(NULL);
QuitGame();
}
void __dassert(const char * pzExpr, const char * pzFile, int nLine)
{
initprintf("Assertion failed: %s in file %s at line %i\n", pzExpr, pzFile, nLine);
char titlebuf[256];
Bsprintf(titlebuf, APPNAME " %s", s_buildRev);
wm_msgbox(titlebuf, "Assertion failed: %s in file %s at line %i\n", pzExpr, pzFile, nLine);
Bfflush(NULL);
exit(0);
}
const char *GetVersionString(void) const char *GetVersionString(void)
{ {
if (!gVersionString) if (!gVersionString)

View file

@ -1775,7 +1775,7 @@ void ProcessInput(PLAYER *pPlayer)
pPlayer->q16horiz = fix16_from_float(100.f*tanf(fix16_to_float(pPlayer->q16look)*fPI/1024.f)); pPlayer->q16horiz = fix16_from_float(100.f*tanf(fix16_to_float(pPlayer->q16look)*fPI/1024.f));
} }
int nSector = pSprite->sectnum; int nSector = pSprite->sectnum;
int florhit = gSpriteHit[pSprite->extra].florhit & 0xe000; int florhit = gSpriteHit[pSprite->extra].florhit & 0xc000;
char va; char va;
if (pXSprite->height < 16 && (florhit == 0x4000 || florhit == 0)) if (pXSprite->height < 16 && (florhit == 0x4000 || florhit == 0))
va = 1; va = 1;

View file

@ -263,8 +263,8 @@ void tilePrecacheTile(int nTile, int nType)
char tileGetSurfType(int hit) char tileGetSurfType(int hit)
{ {
int n = hit &0x1fff; int n = hit & 0x3fff;
switch (hit&0xe000) switch (hit&0xc000)
{ {
case 0x4000: case 0x4000:
return surfType[sector[n].floorpicnum]; return surfType[sector[n].floorpicnum];

View file

@ -447,7 +447,7 @@ void fakeProcessInput(PLAYER *pPlayer, GINPUT *pInput)
predict.at24 = fix16_from_float(100.f*tanf(fix16_to_float(predict.at20)*fPI/1024.f)); predict.at24 = fix16_from_float(100.f*tanf(fix16_to_float(predict.at20)*fPI/1024.f));
int nSector = predict.at68; int nSector = predict.at68;
int florhit = predict.at75.florhit & 0xe000; int florhit = predict.at75.florhit & 0xc000;
char va; char va;
if (predict.at6a < 16 && (florhit == 0x4000 || florhit == 0)) if (predict.at6a < 16 && (florhit == 0x4000 || florhit == 0))
va = 1; va = 1;
@ -614,11 +614,11 @@ void fakeMoveDude(spritetype *pSprite)
pSprite->cstat = bakCstat; pSprite->cstat = bakCstat;
} }
switch (predict.at75.hit&0xe000) switch (predict.at75.hit&0xc000)
{ {
case 0x8000: case 0x8000:
{ {
int nHitWall = predict.at75.hit&0x1fff; int nHitWall = predict.at75.hit&0x3fff;
walltype *pHitWall = &wall[nHitWall]; walltype *pHitWall = &wall[nHitWall];
if (pHitWall->nextsector != -1) if (pHitWall->nextsector != -1)
{ {
@ -756,9 +756,9 @@ void fakeMoveDude(spritetype *pSprite)
predict.at6a = ClipLow(floorZ-bottom, 0)>>8; predict.at6a = ClipLow(floorZ-bottom, 0)>>8;
if (predict.at5c || predict.at60) if (predict.at5c || predict.at60)
{ {
if ((floorHit & 0xe000) == 0xc000) if ((floorHit & 0xc000) == 0xc000)
{ {
int nHitSprite = floorHit & 0x1fff; int nHitSprite = floorHit & 0x3fff;
if ((sprite[nHitSprite].cstat & 0x30) == 0) if ((sprite[nHitSprite].cstat & 0x30) == 0)
{ {
predict.at5c += mulscale(4, predict.at50 - sprite[nHitSprite].x, 2); predict.at5c += mulscale(4, predict.at50 - sprite[nHitSprite].x, 2);
@ -3327,7 +3327,7 @@ RORHACK:
GetZRange(gView->pSprite, &vf4, &vf0, &vec, &ve8, nClipDist, 0); GetZRange(gView->pSprite, &vf4, &vf0, &vec, &ve8, nClipDist, 0);
#if 0 #if 0
int tmpSect = nSectnum; int tmpSect = nSectnum;
if ((vf0 & 0xe000) == 0x4000) if ((vf0 & 0xc000) == 0x4000)
{ {
tmpSect = vf0 & (kMaxWalls-1); tmpSect = vf0 & (kMaxWalls-1);
} }