mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-20 18:52:43 +00:00
- nPlayerViewSect
This commit is contained in:
parent
eaa155d52e
commit
a3f1821670
13 changed files with 57 additions and 71 deletions
|
@ -234,7 +234,7 @@ DExhumedActor* FindPlayer(DExhumedActor* nSprite, int nDistance, bool dontengage
|
|||
DExhumedActor* BuildCreatureChunk(DExhumedActor* pSrc, int nPic, bool bSpecial = false);
|
||||
void BuildNear(int x, int y, int walldist, int nSector);
|
||||
int PlotCourseToSprite(DExhumedActor* nSprite1, DExhumedActor* nSprite2);
|
||||
void CheckSectorFloor(int nSector, int z, int *x, int *y);
|
||||
void CheckSectorFloor(sectortype* nSector, int z, int *x, int *y);
|
||||
int GetAngleToSprite(DExhumedActor* nSprite1, DExhumedActor* nSprite2);
|
||||
int GetWallNormal(walltype* nWall);
|
||||
int GetUpAngle(DExhumedActor* nSprite1, int nVal, DExhumedActor* nSprite2, int ecx);
|
||||
|
|
|
@ -609,18 +609,18 @@ DExhumedActor* BuildBullet(DExhumedActor* pActor, int nType, int nZOffset, int n
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
int nSector;
|
||||
sectortype* pSector;
|
||||
|
||||
if (pSprite->statnum == 100)
|
||||
{
|
||||
nSector = PlayerList[GetPlayerFromActor(pActor)].nPlayerViewSect;
|
||||
pSector = PlayerList[GetPlayerFromActor(pActor)].pPlayerViewSect;
|
||||
}
|
||||
else
|
||||
{
|
||||
nSector = pSprite->sectnum;
|
||||
pSector = pSprite->sector();
|
||||
}
|
||||
|
||||
auto pBulletActor = insertActor(nSector, 200);
|
||||
auto pBulletActor = insertActor(pSector, 200);
|
||||
auto pBulletSprite = &pBulletActor->s();
|
||||
int nHeight = GetActorHeight(pActor);
|
||||
nHeight = nHeight - (nHeight >> 2);
|
||||
|
@ -706,7 +706,7 @@ DExhumedActor* BuildBullet(DExhumedActor* pActor, int nType, int nZOffset, int n
|
|||
|
||||
int var_18 = 0;
|
||||
|
||||
auto pSector = pBulletSprite->sector();
|
||||
pSector = pBulletSprite->sector();
|
||||
|
||||
while (pBulletSprite->z < pSector->ceilingz)
|
||||
{
|
||||
|
|
|
@ -38,20 +38,17 @@ void precache()
|
|||
{
|
||||
if (!r_precache) return;
|
||||
|
||||
int i;
|
||||
|
||||
for (i = 0; i < numsectors; i++)
|
||||
for (auto& sect: sectors())
|
||||
{
|
||||
auto sectp = §or[i];
|
||||
int j = sectp->ceilingpicnum;
|
||||
markTileForPrecache(j, sectp->ceilingpal);
|
||||
int j = sect.ceilingpicnum;
|
||||
markTileForPrecache(j, sect.ceilingpal);
|
||||
if (picanm[j].sf & PICANM_ANIMTYPE_MASK)
|
||||
for (int k = 1; k <= picanm[j].num; k++) markTileForPrecache(j + k, sectp->ceilingpal);
|
||||
for (int k = 1; k <= picanm[j].num; k++) markTileForPrecache(j + k, sect.ceilingpal);
|
||||
|
||||
j = sectp->floorpicnum;
|
||||
markTileForPrecache(j, sectp->floorpal);
|
||||
j = sect.floorpicnum;
|
||||
markTileForPrecache(j, sect.floorpal);
|
||||
if (picanm[j].sf & PICANM_ANIMTYPE_MASK)
|
||||
for (int k = 1; k <= picanm[j].num; k++) markTileForPrecache(j + k, sectp->floorpal);
|
||||
for (int k = 1; k <= picanm[j].num; k++) markTileForPrecache(j + k, sect.floorpal);
|
||||
}
|
||||
|
||||
for(auto& wal : walls())
|
||||
|
|
|
@ -59,7 +59,7 @@ void ThrowGrenade(int nPlayer, int, int, int ecx, int push1)
|
|||
|
||||
int nAngle = pPlayerSprite->ang;
|
||||
|
||||
ChangeActorSect(pActor, PlayerList[nPlayer].nPlayerViewSect);
|
||||
ChangeActorSect(pActor, PlayerList[nPlayer].pPlayerViewSect);
|
||||
|
||||
pGrenadeSprite->x = pPlayerSprite->x;
|
||||
pGrenadeSprite->y = pPlayerSprite->y;
|
||||
|
@ -102,7 +102,7 @@ void ThrowGrenade(int nPlayer, int, int, int ecx, int push1)
|
|||
|
||||
void BuildGrenade(int nPlayer)
|
||||
{
|
||||
auto pActor = insertActor(PlayerList[nPlayer].nPlayerViewSect, 201);
|
||||
auto pActor = insertActor(PlayerList[nPlayer].pPlayerViewSect, 201);
|
||||
auto pSprite = &pActor->s();
|
||||
|
||||
auto pPlayerSprite = &PlayerList[nPlayer].Actor()->s();
|
||||
|
|
|
@ -220,9 +220,9 @@ void SetWeaponStatus(int nPlayer)
|
|||
uint8_t WeaponCanFire(int nPlayer)
|
||||
{
|
||||
int nWeapon = PlayerList[nPlayer].nCurrentWeapon;
|
||||
int nSector =PlayerList[nPlayer].nPlayerViewSect;
|
||||
auto pSector =PlayerList[nPlayer].pPlayerViewSect;
|
||||
|
||||
if (!(sector[nSector].Flag & kSectUnderwater) || WeaponInfo[nWeapon].bFireUnderwater)
|
||||
if (!(pSector->Flag & kSectUnderwater) || WeaponInfo[nWeapon].bFireUnderwater)
|
||||
{
|
||||
int nAmmoType = WeaponInfo[nWeapon].nAmmoType;
|
||||
|
||||
|
@ -313,7 +313,7 @@ void MoveWeapons(int nPlayer)
|
|||
{
|
||||
static int dword_96E22 = 0;
|
||||
|
||||
int nSectFlag = sector[PlayerList[nPlayer].nPlayerViewSect].Flag;
|
||||
int nSectFlag = PlayerList[nPlayer].pPlayerViewSect->Flag;
|
||||
|
||||
if ((nSectFlag & kSectUnderwater) && (totalmoves & 1)) {
|
||||
return;
|
||||
|
|
|
@ -159,7 +159,7 @@ void InitLevel(MapRecord* map)
|
|||
|
||||
for (int i = 0; i < nTotalPlayers; i++)
|
||||
{
|
||||
SetSavePoint(i, initx, inity, initz, initsect, inita);
|
||||
SetSavePoint(i, initx, inity, initz, §or[initsect], inita);
|
||||
RestartPlayer(i);
|
||||
InitPlayerKeys(i);
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ BEGIN_PS_NS
|
|||
int nPushBlocks;
|
||||
|
||||
// TODO - moveme?
|
||||
int overridesect;
|
||||
sectortype* overridesect;
|
||||
|
||||
DExhumedActor* nBodySprite[50];
|
||||
|
||||
|
@ -282,7 +282,7 @@ int BelowNear(DExhumedActor* pActor, int x, int y, int walldist, int _nSector)
|
|||
if (z2 < pSprite->z)
|
||||
{
|
||||
pSprite->z = z2;
|
||||
overridesect = sectnum(pSector);
|
||||
overridesect = pSector;
|
||||
pSprite->zvel = 0;
|
||||
|
||||
bTouchFloor = true;
|
||||
|
@ -301,7 +301,7 @@ Collision movespritez(DExhumedActor* pActor, int z, int height, int, int clipdis
|
|||
auto pSector = pSprite->sector();
|
||||
assert(pSector);
|
||||
|
||||
overridesect = sectnum(pSector);
|
||||
overridesect = pSector;
|
||||
auto pSect2 = pSector;
|
||||
|
||||
// backup cstat
|
||||
|
@ -742,9 +742,8 @@ DExhumedActor* FindPlayer(DExhumedActor* pActor, int nDistance, bool dontengage)
|
|||
return pPlayerActor;
|
||||
}
|
||||
|
||||
void CheckSectorFloor(int nSector, int z, int *x, int *y)
|
||||
void CheckSectorFloor(sectortype* pSector, int z, int *x, int *y)
|
||||
{
|
||||
auto pSector = §or[nSector];
|
||||
int nSpeed = pSector->Speed;
|
||||
|
||||
if (!nSpeed) {
|
||||
|
@ -754,7 +753,7 @@ void CheckSectorFloor(int nSector, int z, int *x, int *y)
|
|||
int nFlag = pSector->Flag;
|
||||
int nAng = nFlag & kAngleMask;
|
||||
|
||||
if (z >= sector[nSector].floorz)
|
||||
if (z >= pSector->floorz)
|
||||
{
|
||||
*x += bcos(nAng, 3) * nSpeed;
|
||||
*y += bsin(nAng, 3) * nSpeed;
|
||||
|
|
|
@ -87,21 +87,12 @@ int PlayerCount;
|
|||
int nNetStartSprites;
|
||||
int nCurStartSprite;
|
||||
|
||||
void RestoreSavePoint(int nPlayer, int *x, int *y, int *z, int *nSector, int16_t *nAngle)
|
||||
{
|
||||
*x = PlayerList[nPlayer].sPlayerSave.x;
|
||||
*y = PlayerList[nPlayer].sPlayerSave.y;
|
||||
*z = PlayerList[nPlayer].sPlayerSave.z;
|
||||
*nSector = PlayerList[nPlayer].sPlayerSave.nSector;
|
||||
*nAngle = PlayerList[nPlayer].sPlayerSave.nAngle;
|
||||
}
|
||||
|
||||
void SetSavePoint(int nPlayer, int x, int y, int z, int nSector, int nAngle)
|
||||
void SetSavePoint(int nPlayer, int x, int y, int z, sectortype* pSector, int nAngle)
|
||||
{
|
||||
PlayerList[nPlayer].sPlayerSave.x = x;
|
||||
PlayerList[nPlayer].sPlayerSave.y = y;
|
||||
PlayerList[nPlayer].sPlayerSave.z = z;
|
||||
PlayerList[nPlayer].sPlayerSave.nSector = nSector;
|
||||
PlayerList[nPlayer].sPlayerSave.pSector = pSector;
|
||||
PlayerList[nPlayer].sPlayerSave.nAngle = nAngle;
|
||||
}
|
||||
|
||||
|
@ -246,7 +237,7 @@ void RestartPlayer(int nPlayer)
|
|||
pActor = GrabBody();
|
||||
auto nSpr = &pActor->s();
|
||||
|
||||
ChangeActorSect(pActor, plr->sPlayerSave.nSector);
|
||||
ChangeActorSect(pActor, plr->sPlayerSave.pSector);
|
||||
ChangeActorStat(pActor, 100);
|
||||
|
||||
auto pDActor = insertActor(nSpr->sectnum, 100);
|
||||
|
@ -284,7 +275,7 @@ void RestartPlayer(int nPlayer)
|
|||
{
|
||||
nSpr->x = plr->sPlayerSave.x;
|
||||
nSpr->y = plr->sPlayerSave.y;
|
||||
nSpr->z = sector[plr->sPlayerSave.nSector].floorz;
|
||||
nSpr->z = plr->sPlayerSave.pSector->floorz;
|
||||
plr->angle.ang = buildang(plr->sPlayerSave.nAngle&kAngleMask);
|
||||
nSpr->ang = plr->angle.ang.asbuild();
|
||||
|
||||
|
@ -355,7 +346,7 @@ void RestartPlayer(int nPlayer)
|
|||
|
||||
plr->bIsFiring = 0;
|
||||
plr->nSeqSize2 = 0;
|
||||
plr->nPlayerViewSect = plr->sPlayerSave.nSector;
|
||||
plr->pPlayerViewSect = plr->sPlayerSave.pSector;
|
||||
plr->nState = 0;
|
||||
|
||||
plr->nDouble = 0;
|
||||
|
@ -863,7 +854,7 @@ void AIPlayer::Tick(RunListEvent* ev)
|
|||
|
||||
// loc_1A4E6
|
||||
int nSector =pPlayerSprite->sectnum;
|
||||
int nSectFlag = sector[PlayerList[nPlayer].nPlayerViewSect].Flag;
|
||||
int nSectFlag = PlayerList[nPlayer].pPlayerViewSect->Flag;
|
||||
|
||||
int playerX = pPlayerSprite->x;
|
||||
int playerY = pPlayerSprite->y;
|
||||
|
@ -1165,7 +1156,7 @@ sectdone:
|
|||
}
|
||||
|
||||
// loc_1ADAF
|
||||
PlayerList[nPlayer].nPlayerViewSect = sectnum(pViewSect);
|
||||
PlayerList[nPlayer].pPlayerViewSect = pViewSect;
|
||||
|
||||
PlayerList[nPlayer].nPlayerDX = pPlayerSprite->x - spr_x;
|
||||
PlayerList[nPlayer].nPlayerDY = pPlayerSprite->y - spr_y;
|
||||
|
@ -2215,7 +2206,7 @@ sectdone:
|
|||
ChangeActorStat(pActorB, 899);
|
||||
}
|
||||
|
||||
SetSavePoint(nPlayer, pPlayerSprite->x, pPlayerSprite->y, pPlayerSprite->z, pPlayerSprite->sectnum, pPlayerSprite->ang);
|
||||
SetSavePoint(nPlayer, pPlayerSprite->x, pPlayerSprite->y, pPlayerSprite->z, pPlayerSprite->sector(), pPlayerSprite->ang);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -2506,7 +2497,7 @@ sectdone:
|
|||
// loc_1C201:
|
||||
if (nLocalPlayer == nPlayer)
|
||||
{
|
||||
nLocalEyeSect = PlayerList[nLocalPlayer].nPlayerViewSect;
|
||||
nLocalEyeSect = sectnum(PlayerList[nLocalPlayer].pPlayerViewSect);
|
||||
CheckAmbience(nLocalEyeSect);
|
||||
}
|
||||
|
||||
|
@ -2670,7 +2661,7 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, Player& w, Player*
|
|||
("pushsound", w.nPlayerPushSound)
|
||||
("taunttimer", w.nTauntTimer)
|
||||
("weapons", w.nPlayerWeapons)
|
||||
("viewsect", w.nPlayerViewSect)
|
||||
("viewsect", w.pPlayerViewSect)
|
||||
("floorspr", w.pPlayerFloorSprite)
|
||||
("save", w.sPlayerSave)
|
||||
("totalvel", w.totalvel)
|
||||
|
@ -2689,7 +2680,7 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, PlayerSave& w, Pla
|
|||
arc("x", w.x)
|
||||
("y", w.y)
|
||||
("z", w.z)
|
||||
("sector", w.nSector)
|
||||
("sector", w.pSector)
|
||||
("angle", w.nAngle)
|
||||
.EndObject();
|
||||
}
|
||||
|
@ -2764,7 +2755,7 @@ DEFINE_ACTION_FUNCTION(_ExhumedPlayer, IsUnderwater)
|
|||
{
|
||||
PARAM_SELF_STRUCT_PROLOGUE(Player);
|
||||
auto nLocalPlayer = self - PlayerList;
|
||||
ACTION_RETURN_BOOL(sector[PlayerList[nLocalPlayer].nPlayerViewSect].Flag & kSectUnderwater);
|
||||
ACTION_RETURN_BOOL(PlayerList[nLocalPlayer].pPlayerViewSect->Flag & kSectUnderwater);
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION(_ExhumedPlayer, GetAngle)
|
||||
|
|
|
@ -23,8 +23,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||
|
||||
BEGIN_PS_NS
|
||||
|
||||
void RestoreSavePoint(int nPlayer, int *x, int *y, int *z, int *nSector, int16_t *nAngle);
|
||||
void SetSavePoint(int nPlayer, int x, int y, int z, int nSector, int nAngle);
|
||||
void SetSavePoint(int nPlayer, int x, int y, int z, sectortype* nSector, int nAngle);
|
||||
void InitPlayer();
|
||||
void InitPlayerKeys(int nPlayer);
|
||||
int GrabPlayer();
|
||||
|
@ -48,10 +47,10 @@ extern int lPlayerYVel;
|
|||
|
||||
struct PlayerSave
|
||||
{
|
||||
sectortype* pSector;
|
||||
int x;
|
||||
int y;
|
||||
int z;
|
||||
int nSector;
|
||||
int16_t nAngle;
|
||||
};
|
||||
|
||||
|
@ -90,6 +89,7 @@ struct Player
|
|||
PlayerHorizon horizon;
|
||||
PlayerAngle angle;
|
||||
sectortype* pPlayerPushSect;
|
||||
sectortype* pPlayerViewSect;
|
||||
|
||||
int16_t nBreathTimer;
|
||||
int16_t nPlayerSwear;
|
||||
|
@ -106,7 +106,6 @@ struct Player
|
|||
int16_t nPlayerPushSound;
|
||||
int16_t nTauntTimer;
|
||||
uint16_t nPlayerWeapons; // each set bit represents a weapon the player has
|
||||
int nPlayerViewSect;
|
||||
PlayerSave sPlayerSave;
|
||||
int ototalvel;
|
||||
int totalvel;
|
||||
|
|
|
@ -361,9 +361,9 @@ int16_t seq_GetFrameFlag(int16_t val, int16_t nFrame)
|
|||
|
||||
void seq_DrawPilotLightSeq(double xOffset, double yOffset)
|
||||
{
|
||||
int16_t nSect = PlayerList[nLocalPlayer].nPlayerViewSect;
|
||||
auto pSect = PlayerList[nLocalPlayer].pPlayerViewSect;
|
||||
|
||||
if (!(sector[nSect].Flag & kSectUnderwater))
|
||||
if (!(pSect->Flag & kSectUnderwater))
|
||||
{
|
||||
int16_t nFrame = nPilotLightBase + nPilotLightFrame;
|
||||
int16_t nFrameBase = FrameBase[nFrame];
|
||||
|
|
|
@ -122,7 +122,7 @@ void BuildSnake(int nPlayer, int zVal)
|
|||
|
||||
auto pPlayerActor = PlayerList[nPlayer].Actor();
|
||||
auto pPlayerSprite = &pPlayerActor->s();
|
||||
int nViewSect = PlayerList[nPlayer].nPlayerViewSect;
|
||||
auto pViewSect = PlayerList[nPlayer].pPlayerViewSect;
|
||||
int nPic = seq_GetSeqPicnum(kSeqSnakBody, 0, 0);
|
||||
|
||||
int x = pPlayerSprite->x;
|
||||
|
@ -191,7 +191,7 @@ void BuildSnake(int nPlayer, int zVal)
|
|||
|
||||
for (int i = 0; i < kSnakeSprites; i++)
|
||||
{
|
||||
auto pActor = insertActor(nViewSect, 202);
|
||||
auto pActor = insertActor(pViewSect, 202);
|
||||
auto pSprite = &pActor->s();
|
||||
|
||||
pActor->pTarget = pPlayerActor;
|
||||
|
@ -205,7 +205,7 @@ void BuildSnake(int nPlayer, int zVal)
|
|||
pSprite->z = pPlayerSprite->z + zVal;
|
||||
pSprite->xrepeat = 32;
|
||||
pSprite->yrepeat = 32;
|
||||
nViewSect = pSprite->sectnum;
|
||||
pViewSect = pSprite->sector();
|
||||
sprt = pActor;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -237,8 +237,8 @@ void InitFX(void)
|
|||
|
||||
void GetSpriteSoundPitch(int* pVolume, int* pPitch)
|
||||
{
|
||||
int nSoundSect = PlayerList[nLocalPlayer].nPlayerViewSect;
|
||||
int nLocalSectFlags = sector[nSoundSect].Flag;
|
||||
auto pSoundSect = PlayerList[nLocalPlayer].pPlayerViewSect;
|
||||
int nLocalSectFlags = pSoundSect->Flag;
|
||||
if (nLocalSectFlags & kSectUnderwater)
|
||||
{
|
||||
if (*pVolume == 255)
|
||||
|
@ -724,7 +724,7 @@ void UpdateCreepySounds()
|
|||
nCreepyTimer--;
|
||||
if (nCreepyTimer <= 0)
|
||||
{
|
||||
if (nCreaturesKilled < nCreaturesTotal && !(sector[PlayerList[nLocalPlayer].nPlayerViewSect].Flag & 0x2000))
|
||||
if (nCreaturesKilled < nCreaturesTotal && !(PlayerList[nLocalPlayer].pPlayerViewSect->Flag & 0x2000))
|
||||
{
|
||||
int vsi = seq_GetFrameSound(SeqOffsets[kSeqCreepy], totalmoves % SeqSize[SeqOffsets[kSeqCreepy]]);
|
||||
if (vsi >= 0 && (vsi & 0x1ff) < kMaxSounds)
|
||||
|
|
|
@ -202,7 +202,7 @@ void DrawView(double smoothRatio, bool sceneonly)
|
|||
int playerX;
|
||||
int playerY;
|
||||
int playerZ;
|
||||
int nSector;
|
||||
sectortype* pSector = nullptr;
|
||||
binangle nAngle, rotscrnang;
|
||||
fixedhoriz pan = {};
|
||||
|
||||
|
@ -225,7 +225,7 @@ void DrawView(double smoothRatio, bool sceneonly)
|
|||
playerX = pSprite->x;
|
||||
playerY = pSprite->y;
|
||||
playerZ = pSprite->z;
|
||||
nSector = pSprite->sectnum;
|
||||
pSector = pSprite->sector();
|
||||
nAngle = buildang(pSprite->ang);
|
||||
rotscrnang = buildang(0);
|
||||
|
||||
|
@ -249,9 +249,9 @@ void DrawView(double smoothRatio, bool sceneonly)
|
|||
playerY = pPlayerSprite->interpolatedy(smoothRatio);
|
||||
playerZ = pPlayerSprite->interpolatedz(smoothRatio) + interpolatedvalue(PlayerList[nLocalPlayer].oeyelevel, PlayerList[nLocalPlayer].eyelevel, smoothRatio);
|
||||
|
||||
nSector = PlayerList[nLocalPlayer].nPlayerViewSect;
|
||||
updatesector(playerX, playerY, &nSector);
|
||||
if (nSector == -1) PlayerList[nLocalPlayer].nPlayerViewSect;
|
||||
pSector = PlayerList[nLocalPlayer].pPlayerViewSect;
|
||||
updatesector(playerX, playerY, &pSector);
|
||||
if (pSector == nullptr) pSector = PlayerList[nLocalPlayer].pPlayerViewSect;
|
||||
|
||||
if (!SyncInput())
|
||||
{
|
||||
|
@ -299,21 +299,21 @@ void DrawView(double smoothRatio, bool sceneonly)
|
|||
if (bCamera)
|
||||
{
|
||||
viewz -= 2560;
|
||||
/* needs fixing.
|
||||
if (!calcChaseCamPos(&playerX, &playerY, &viewz, pPlayerSprite, &nSector, nAngle, pan, smoothRatio))
|
||||
{
|
||||
viewz += 2560;
|
||||
calcChaseCamPos(&playerX, &playerY, &viewz, pPlayerSprite, &nSector, nAngle, pan, smoothRatio);
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
nCamerax = playerX;
|
||||
nCameray = playerY;
|
||||
nCameraz = playerZ;
|
||||
|
||||
if (nSector != -1)
|
||||
if (pSector != nullptr)
|
||||
{
|
||||
auto pSector = §or[nSector];
|
||||
|
||||
int Z = pSector->ceilingz + 256;
|
||||
if (Z <= viewz)
|
||||
{
|
||||
|
@ -369,13 +369,13 @@ void DrawView(double smoothRatio, bool sceneonly)
|
|||
if (!testnewrenderer)
|
||||
{
|
||||
renderSetRollAngle((float)rotscrnang.asbuildf());
|
||||
renderDrawRoomsQ16(nCamerax, nCameray, viewz, nCameraa.asq16(), nCamerapan.asq16(), nSector, false);
|
||||
renderDrawRoomsQ16(nCamerax, nCameray, viewz, nCameraa.asq16(), nCamerapan.asq16(), sectnum(pSector), false);
|
||||
analyzesprites(pm_tsprite, pm_spritesortcnt, nCamerax, nCameray, viewz, smoothRatio);
|
||||
renderDrawMasks();
|
||||
}
|
||||
else
|
||||
{
|
||||
render_drawrooms(nullptr, { nCamerax, nCameray, viewz }, nSector, nCameraa, nCamerapan, rotscrnang, smoothRatio);
|
||||
render_drawrooms(nullptr, { nCamerax, nCameray, viewz }, sectnum(pSector), nCameraa, nCamerapan, rotscrnang, smoothRatio);
|
||||
}
|
||||
|
||||
if (HavePLURemap())
|
||||
|
|
Loading…
Reference in a new issue