diff options
Diffstat (limited to 'src/bossMegaGoomba.cpp')
-rw-r--r-- | src/bossMegaGoomba.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/bossMegaGoomba.cpp b/src/bossMegaGoomba.cpp index a6758f4..0214f60 100644 --- a/src/bossMegaGoomba.cpp +++ b/src/bossMegaGoomba.cpp @@ -127,9 +127,6 @@ class daMegaGoomba_c : public dEn_c { // DECLARE_STATE(Outro); }; -u8 struct_1[] = { 0, 0, 0, 1, 0xff, 0xff, 0x40, 0, 0, 0, 0xc0, 0, 0, 0, 0, 0 }; -u8 struct_3[] = { 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0x3f, 0x2a, 0x7e, 0xfa }; - // last 4 bytes not needed. float for scale daMegaGoomba_c *daMegaGoomba_c::build() { void *buffer = AllocFromGameHeap1(sizeof(daMegaGoomba_c)); @@ -316,7 +313,9 @@ void daMegaGoomba_c::setupCollision() { //POINTLESS WITH GROWTH this->scale.x = this->scale.y = this->scale.z = 0.666; - this->collMgr.Init(this, struct_1, 0, struct_3); + static const lineSensor_s below(-12 << 12, 12 << 12, 0); + static const pointSensor_s adjacent(16 << 12, 16 << 12); + this->collMgr.init(this, &below, 0, &adjacent); char foo = this->_391; this->pos_delta2.x = 0.0; @@ -696,13 +695,13 @@ void daMegaGoomba_c::executeState_Walk() { int ret = SomeStrangeModification(this); if(ret & 1) this->speed.y = 0.0; - u32 bitfield = this->collMgr.bitfield_for_checks; + u32 bitfield = this->collMgr.outputMaybe; if(bitfield & (0x15<<this->direction)) { this->pos.x = this->last_pos.x; this->doStateChange(&StateID_Turn); //this->acState.setField10ToOne(); } - u32 bitfield2 = this->collMgr.directional_bitfields[this->direction]; + u32 bitfield2 = this->collMgr.adjacentTileProps[this->direction]; if(bitfield2) { this->doStateChange(&StateID_Turn); } @@ -783,7 +782,7 @@ void daMegaGoomba_c::stunPlayers() { dStageActor_c *player = GetSpecificPlayerActor(i); if (player) { - if (player->collMgr.CollidedWithTile() && player->currentZoneID == currentZoneID) { + if (player->collMgr.isOnTopOfTile() && player->currentZoneID == currentZoneID) { stunPlayer(player, 1); playerStunned[i] = true; } |