mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-12 06:50:59 +00:00
Increase build objects count max size
# Conflicts: # source/blood/src/mapedit.cpp
This commit is contained in:
parent
4e0a563cfe
commit
381f5dcac2
10 changed files with 92 additions and 90 deletions
|
@ -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);
|
||||||
|
|
|
@ -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())
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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];
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue