From b8b5fe91626640ce7eee341e60fb3de3537d0a41 Mon Sep 17 00:00:00 2001 From: Mitchell Richters Date: Sun, 25 Sep 2022 21:45:33 +1000 Subject: [PATCH] - Blood: Floatified `playerStart()` and `ZONE::ang`. --- source/games/blood/src/blood.cpp | 6 +++--- source/games/blood/src/misc.h | 2 +- source/games/blood/src/player.cpp | 7 +++---- source/games/blood/src/warp.cpp | 10 +++++----- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/source/games/blood/src/blood.cpp b/source/games/blood/src/blood.cpp index 759e47cdb..dff1b66f6 100644 --- a/source/games/blood/src/blood.cpp +++ b/source/games/blood/src/blood.cpp @@ -294,18 +294,18 @@ void StartLevel(MapRecord* level, bool newgame) for (int i = 0; i < kMaxPlayers; i++) { gStartZone[i].pos = startpos; gStartZone[i].sector = startsector; - gStartZone[i].ang = startang; + gStartZone[i].angle = DAngle::fromBuild(startang); #ifdef NOONE_EXTENSIONS // Create spawn zones for players in teams mode. if (gModernMap && i <= kMaxPlayers / 2) { gStartZoneTeam1[i].pos = startpos; gStartZoneTeam1[i].sector = startsector; - gStartZoneTeam1[i].ang = startang; + gStartZoneTeam1[i].angle = DAngle::fromBuild(startang); gStartZoneTeam2[i].pos = startpos; gStartZoneTeam2[i].sector = startsector; - gStartZoneTeam2[i].ang = startang; + gStartZoneTeam2[i].angle = DAngle::fromBuild(startang); } #endif } diff --git a/source/games/blood/src/misc.h b/source/games/blood/src/misc.h index 9853ee115..4d6a775f6 100644 --- a/source/games/blood/src/misc.h +++ b/source/games/blood/src/misc.h @@ -60,7 +60,7 @@ void WeaponPrecache(); struct ZONE { DVector3 pos; sectortype* sector; - short ang; + DAngle angle; }; extern ZONE gStartZone[8]; diff --git a/source/games/blood/src/player.cpp b/source/games/blood/src/player.cpp index 3bf4f53c9..7893c5c74 100644 --- a/source/games/blood/src/player.cpp +++ b/source/games/blood/src/player.cpp @@ -806,12 +806,11 @@ void playerStart(int nPlayer, int bNewLevel) seqSpawn(pDudeInfo->seqStartID, actor, -1); if (nPlayer == myconnectindex) actor->spr.cstat2 |= CSTAT2_SPRITE_MAPPED; - int top, bottom; + double top, bottom; GetActorExtents(actor, &top, &bottom); - actor->add_int_z(-(bottom - actor->int_pos().Z)); + actor->spr.pos.Z -= bottom - actor->spr.pos.Z; actor->spr.pal = 11 + (pPlayer->teamId & 3); - actor->set_int_ang(pStartZone->ang); - pPlayer->angle.ang = actor->spr.angle; + actor->spr.angle = pPlayer->angle.ang = pStartZone->angle; actor->spr.type = kDudePlayer1 + nPlayer; actor->set_native_clipdist(pDudeInfo->clipdist); actor->spr.flags = 15; diff --git a/source/games/blood/src/warp.cpp b/source/games/blood/src/warp.cpp index 261e284de..19e41c49c 100644 --- a/source/games/blood/src/warp.cpp +++ b/source/games/blood/src/warp.cpp @@ -85,7 +85,7 @@ void warpInit(TArray& actors) ZONE* pZone = &gStartZone[actor->xspr.data1]; pZone->pos = actor->spr.pos; pZone->sector = actor->sector(); - pZone->ang = actor->int_ang(); + pZone->angle = actor->spr.angle; } DeleteSprite(actor); break; @@ -96,7 +96,7 @@ void warpInit(TArray& actors) ZONE* pZone = &gStartZone[actor->xspr.data1]; pZone->pos = actor->spr.pos; pZone->sector = actor->sector(); - pZone->ang = actor->int_ang(); + pZone->angle = actor->spr.angle; #ifdef NOONE_EXTENSIONS // fill player spawn position according team of player in TEAMS mode. @@ -105,7 +105,7 @@ void warpInit(TArray& actors) pZone = &gStartZoneTeam1[team1]; pZone->pos = actor->spr.pos; pZone->sector = actor->sector(); - pZone->ang = actor->int_ang(); + pZone->angle = actor->spr.angle; team1++; } @@ -113,7 +113,7 @@ void warpInit(TArray& actors) pZone = &gStartZoneTeam2[team2]; pZone->pos = actor->spr.pos; pZone->sector = actor->sector(); - pZone->ang = actor->int_ang(); + pZone->angle = actor->spr.angle; team2++; } } @@ -317,7 +317,7 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, ZONE& w, ZONE* def { arc("pos", w.pos) ("sector", w.sector) - ("angle", w.ang) + ("angle", w.angle) .EndObject(); } return arc;