Skip to content

Commit cf93d5d

Browse files
authored
Merge pull request #1676 from mouzedrift/beta
fix BirdPortal not appearing in E2P02C02
2 parents a461ea3 + ce44e3f commit cf93d5d

6 files changed

Lines changed: 13 additions & 14 deletions

File tree

.github/workflows/ci.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ jobs:
2323
fail-fast: false
2424
matrix:
2525
include:
26-
- os: windows-2019
26+
- os: windows-latest
2727
name: Windows32
28-
- os: windows-2019
28+
- os: windows-latest
2929
name: Windows64
3030
- os: ubuntu-latest
3131
name: Linux
@@ -60,7 +60,7 @@ jobs:
6060
run: |
6161
mkdir build
6262
cd build
63-
cmake .. -G"Visual Studio 16 2019" -DSDL2_DIR="$env:GITHUB_WORKSPACE\SDL2-2.0.22" -DCMAKE_PREFIX_PATH="$env:QT_ROOT_DIR" -A Win32 -DCI_PROVIDER="GitHub" -DBUILD_NUMBER="$env:GITHUB_RUN_NUMBER"
63+
cmake .. -G"Visual Studio 17 2022" -DSDL2_DIR="$env:GITHUB_WORKSPACE\SDL2-2.0.22" -DCMAKE_PREFIX_PATH="$env:QT_ROOT_DIR" -A Win32 -DCI_PROVIDER="GitHub" -DBUILD_NUMBER="$env:GITHUB_RUN_NUMBER"
6464
cmake --build . --config $env:CONFIGURATION
6565
cpack -G ZIP -C $env:CONFIGURATION
6666
@@ -80,7 +80,7 @@ jobs:
8080
run: |
8181
mkdir build
8282
cd build
83-
cmake .. -G"Visual Studio 16 2019" -DSDL2_DIR="$env:GITHUB_WORKSPACE\SDL2-2.0.22" -DCMAKE_PREFIX_PATH="$env:QT_ROOT_DIR" -A x64 -DCI_PROVIDER="GitHub" -DBUILD_NUMBER="$env:GITHUB_RUN_NUMBER"
83+
cmake .. -G"Visual Studio 17 2022" -DSDL2_DIR="$env:GITHUB_WORKSPACE\SDL2-2.0.22" -DCMAKE_PREFIX_PATH="$env:QT_ROOT_DIR" -A x64 -DCI_PROVIDER="GitHub" -DBUILD_NUMBER="$env:GITHUB_RUN_NUMBER"
8484
cmake --build . --config $env:CONFIGURATION
8585
cpack -G ZIP -C $env:CONFIGURATION
8686

Source/AliveLibAE/FlyingSlig.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2104,7 +2104,7 @@ bool FlyingSlig::IsWallBetween(BaseAliveGameObject* pThis, BaseAliveGameObject*
21042104
&pLine,
21052105
&hitX,
21062106
&hitY,
2107-
pThis->GetScale() == Scale::Fg ? kFgFloorWallOrCeiling : kBgFloorWallOrCeiling)
2107+
pThis->GetScale() == Scale::Fg ? kFgFloorCeilingOrWalls : kBgFloorCeilingOrWalls)
21082108
!= 1;
21092109
}
21102110

Source/AliveLibAE/Glukkon.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2908,8 +2908,8 @@ bool Glukkon::IsLineOfSightBetween(Glukkon* pGlukkon, BaseAliveGameObject* pOthe
29082908
&pathLine,
29092909
&hitX,
29102910
&hitY,
2911-
pGlukkon->GetScale() == Scale::Fg ? kFgFloorWallOrCeiling
2912-
: kBgFloorWallOrCeiling)
2911+
pGlukkon->GetScale() == Scale::Fg ? kFgFloorCeilingOrWalls
2912+
: kBgFloorCeilingOrWalls)
29132913
!= 1;
29142914
}
29152915

Source/AliveLibAE/Scrab.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4081,8 +4081,8 @@ bool Scrab::LineOfSightTo(Scrab* pThis, BaseAliveGameObject* pObj)
40814081
&pLine,
40824082
&hitX,
40834083
&hitY,
4084-
pThis->GetScale() == Scale::Fg ? kFgFloorWallOrCeiling
4085-
: kBgFloorWallOrCeiling)
4084+
pThis->GetScale() == Scale::Fg ? kFgFloorCeilingOrWalls
4085+
: kBgFloorCeilingOrWalls)
40864086
!= 1;
40874087
}
40884088

Source/AliveLibAO/BirdPortal.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ BirdPortal::BirdPortal(relive::Path_BirdPortal* pTlv, const Guid& tlvId)
5656

5757
PathLine* pLine = nullptr;
5858
FP hitX = {};
59+
60+
// IMPORTANT: In AO we need to include all masks otherwise the BirdPortal in E2P02C02 won't detect a collision.
61+
// This is because the BirdPortal object does not touch the floor but still collides with the right wall.
5962
gCollisions->Raycast(
6063
FP_FromInteger(pTlv->mTopLeftX),
6164
FP_FromInteger(pTlv->mTopLeftY),
@@ -64,7 +67,7 @@ BirdPortal::BirdPortal(relive::Path_BirdPortal* pTlv, const Guid& tlvId)
6467
&pLine,
6568
&hitX,
6669
&mHitY,
67-
mSpriteScale > FP_FromDouble(0.5) ? kFgFloor : kBgFloor);
70+
mSpriteScale > FP_FromDouble(0.5) ? kFgFloorCeilingOrWalls : kBgFloorCeilingOrWalls);
6871

6972
mXPos = FP_FromInteger(pTlv->mTopLeftX);
7073
mYPos = mHitY - (FP_FromInteger(55) * mSpriteScale);

Source/relive_lib/Collisions.hpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,10 +134,6 @@ inline constexpr CollisionMask kBgCeiling(eBackgroundCeiling_7);
134134
inline constexpr CollisionMask kFgFloorOrCeiling(eFloor_0, eDynamicCollision_32, eCeiling_3);
135135
inline constexpr CollisionMask kBgFloorOrCeiling(eBackgroundFloor_4, eBackgroundDynamicCollision_36, eBackgroundCeiling_7);
136136

137-
138-
inline constexpr CollisionMask kFgFloorWallOrCeiling(eFloor_0, eDynamicCollision_32, eWallLeft_1, eWallRight_2, eCeiling_3);
139-
inline constexpr CollisionMask kBgFloorWallOrCeiling(eBackgroundFloor_4, eBackgroundDynamicCollision_36, eBackgroundWallLeft_5, eBackgroundWallRight_6, eBackgroundCeiling_7);
140-
141137
inline constexpr CollisionMask kFgWallsOrFloor(eFloor_0, eDynamicCollision_32, eWallLeft_1, eWallRight_2);
142138
inline constexpr CollisionMask kBgWallsOrFloor(eBackgroundFloor_4, eBackgroundDynamicCollision_36, eBackgroundWallLeft_5, eBackgroundWallRight_6);
143139

0 commit comments

Comments
 (0)