summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bugfixes.yaml4
-rw-r--r--src/creditsMgr.cpp19
-rw-r--r--src/topman.cpp3
3 files changed, 23 insertions, 3 deletions
diff --git a/bugfixes.yaml b/bugfixes.yaml
index 9f5a48c..e32414f 100644
--- a/bugfixes.yaml
+++ b/bugfixes.yaml
@@ -9,6 +9,10 @@ hooks:
src_addr_pal: 0x80A93038
target_func: 'RedRingEventControl'
+ - name: HigherBobombTileExplosionRadius
+ type: patch
+ addr_pal: 0x809CB118
+ data: '2C1C0003'
- name: DisableTerrainShading
type: patch
addr_pal: 0x8008E6F8
diff --git a/src/creditsMgr.cpp b/src/creditsMgr.cpp
index ece7b35..c8ef8c2 100644
--- a/src/creditsMgr.cpp
+++ b/src/creditsMgr.cpp
@@ -557,10 +557,25 @@ void dCreditsMgr_c::positionPlayers() {
playerPositions[2] = playerPositions[0] + diff;
playerPositions[3] = playerPositions[0] + diff + diff;
+ // This is annoying
+ dAcPy_c *players[4];
+ for (int i = 0; i < 4; i++)
+ players[i] = dAcPy_c::findByID(i);
+
+ static const int crap[4] = {0,1,3,2};
+
int whichPos = 0;
for (int i = 0; i < 4; i++) {
- dAcPy_c *player;
- if ((player = dAcPy_c::findByID(i))) {
+ dAcPy_c *player = 0;
+ // Find the player matching this ID
+ for (int j = 0; j < 4; j++) {
+ if (Player_ID[players[j]->settings & 0xF] == crap[i]) {
+ player = players[j];
+ break;
+ }
+ }
+
+ if (player) {
player->pos.x = playerPositions[whichPos];
player->pos.y = -(entrance->yPos + 16);
player->direction = 0;
diff --git a/src/topman.cpp b/src/topman.cpp
index 5d98761..854edc2 100644
--- a/src/topman.cpp
+++ b/src/topman.cpp
@@ -157,7 +157,8 @@ daTopman *daTopman::build() {
bool daTopman::collisionCat9_RollingObject(ActivePhysics *apThis, ActivePhysics *apOther) {
backFire = apOther->owner->direction ^ 1;
- doStateChange(&StateID_KnockBack);
+ // doStateChange(&StateID_KnockBack);
+ doStateChange(&StateID_Die);
return true;
}