summaryrefslogtreecommitdiff
path: root/src/topman.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/topman.cpp')
-rw-r--r--src/topman.cpp35
1 files changed, 17 insertions, 18 deletions
diff --git a/src/topman.cpp b/src/topman.cpp
index 56493da..0c2865a 100644
--- a/src/topman.cpp
+++ b/src/topman.cpp
@@ -213,8 +213,8 @@ bool daTopman::calculateTileCollisions() {
HandleYSpeed();
doSpriteMovement();
- cmgr_returnValue = collMgr.CollidedWithTile();
- collMgr.execute();
+ cmgr_returnValue = collMgr.isOnTopOfTile();
+ collMgr.calculateBelowCollisionWithSmokeEffect();
if (isBouncing) {
stuffRelatingToCollisions(0.1875f, 1.0f, 0.5f);
@@ -228,7 +228,7 @@ bool daTopman::calculateTileCollisions() {
else
direction = 1;
- if (collMgr.CollidedWithTile()) {
+ if (collMgr.isOnTopOfTile()) {
// Walking into a tile branch
if (cmgr_returnValue == 0)
@@ -252,23 +252,23 @@ bool daTopman::calculateTileCollisions() {
// Bouncing checks
if (_34A & 4) {
Vec v = (Vec){0.0f, 1.0f, 0.0f};
- collMgr.parent_speed_ptr = &v;
+ collMgr.pSpeed = &v;
- if (collMgr.SomethingSemiImportant(collMgr.bitfield_for_checks))
+ if (collMgr.calculateAboveCollision(collMgr.outputMaybe))
speed.y = 0.0f;
- collMgr.parent_speed_ptr = &speed;
+ collMgr.pSpeed = &speed;
} else {
- if (collMgr.SomethingSemiImportant(collMgr.bitfield_for_checks))
+ if (collMgr.calculateAboveCollision(collMgr.outputMaybe))
speed.y = 0.0f;
}
- collMgr.s_8006FA40(0);
+ collMgr.calculateAdjacentCollision(0);
// Switch Direction
- if (collMgr.bitfield_for_checks & (0x15 << direction)) {
- if (collMgr.CollidedWithTile()) {
+ if (collMgr.outputMaybe & (0x15 << direction)) {
+ if (collMgr.isOnTopOfTile()) {
isBouncing = true;
}
return true;
@@ -346,17 +346,16 @@ int daTopman::onCreate() {
_320 = 0.0f;
_324 = 16.0f;
- // These structs tell stupid collider what to collide with - these are from koopa troopa
- static const u8 one[16] = {0,0,0,1, 0,0,0xC0,0, 0,0,0x40,0, 0,0,0,0};
- static const u8 two[12] = {0,0,0,0, 0,0,0,0, 0,0,0xC0,0};
- static const u8 three[16] = {0,0,0,1, 0,0,0x60,0, 0,0,0x90,0, 0,0,0xE0,0};
+ static const lineSensor_s below(12<<12, 4<<12, 0<<12);
+ static const pointSensor_s above(0<<12, 12<<12);
+ static const lineSensor_s adjacent(6<<12, 9<<12, 14<<12);
- collMgr.Init(this, one, two, three);
- collMgr.execute();
+ collMgr.init(this, &below, &above, &adjacent);
+ collMgr.calculateBelowCollisionWithSmokeEffect();
- cmgr_returnValue = collMgr.CollidedWithTile();
+ cmgr_returnValue = collMgr.isOnTopOfTile();
- if (collMgr.CollidedWithTile())
+ if (collMgr.isOnTopOfTile())
isBouncing = false;
else
isBouncing = true;