Add gLevelValues.fixCollisionBugsGroundPoundBonks

This commit is contained in:
MysterD 2023-06-22 11:40:59 -07:00
parent 3f60869fcb
commit c7a557d870
6 changed files with 57 additions and 48 deletions

View file

@ -652,6 +652,7 @@
--- @field public extendedPauseDisplay integer
--- @field public fixCollisionBugs integer
--- @field public fixCollisionBugsFalseLedgeGrab integer
--- @field public fixCollisionBugsGroundPoundBonks integer
--- @field public fixCollisionBugsRoundedCorners integer
--- @field public fixVanishFloors integer
--- @field public floatingStarDance integer

View file

@ -958,6 +958,7 @@
| extendedPauseDisplay | `integer` | |
| fixCollisionBugs | `integer` | |
| fixCollisionBugsFalseLedgeGrab | `integer` | |
| fixCollisionBugsGroundPoundBonks | `integer` | |
| fixCollisionBugsRoundedCorners | `integer` | |
| fixVanishFloors | `integer` | |
| floatingStarDance | `integer` | |

View file

@ -45,6 +45,7 @@ struct LevelValues gDefaultLevelValues = {
.fixCollisionBugs = 0,
.fixCollisionBugsRoundedCorners = 1,
.fixCollisionBugsFalseLedgeGrab = 1,
.fixCollisionBugsGroundPoundBonks = 1,
.fixVanishFloors = 0,
.hudCapTimer = 0,
.hudRedCoinsRadar = 0,

View file

@ -43,6 +43,7 @@ struct LevelValues {
u8 fixCollisionBugs;
u8 fixCollisionBugsRoundedCorners;
u8 fixCollisionBugsFalseLedgeGrab;
u8 fixCollisionBugsGroundPoundBonks;
u8 wingCapLookUpReq;
u8 fixVanishFloors;
u8 hudCapTimer;

View file

@ -1009,7 +1009,10 @@ s32 act_ground_pound(struct MarioState *m) {
}
}
if (m->playerIndex == 0) { set_camera_shake_from_hit(SHAKE_GROUND_POUND); }
} else if (stepResult == AIR_STEP_HIT_WALL && !gLevelValues.fixCollisionBugs) {
} else if (stepResult == AIR_STEP_HIT_WALL) {
if (gLevelValues.fixCollisionBugs && gLevelValues.fixCollisionBugsGroundPoundBonks) {
// do nothing
} else {
mario_set_forward_vel(m, -16.0f);
if (m->vel[1] > 0.0f) {
m->vel[1] = 0.0f;
@ -1019,6 +1022,7 @@ s32 act_ground_pound(struct MarioState *m) {
set_mario_action(m, ACT_BACKWARD_AIR_KB, 0);
}
}
}
return FALSE;
}

View file

@ -743,7 +743,7 @@ static struct LuaObjectField sLakituStateFields[LUA_LAKITU_STATE_FIELD_COUNT] =
{ "yaw", LVT_S16, offsetof(struct LakituState, yaw), false, LOT_NONE },
};
#define LUA_LEVEL_VALUES_FIELD_COUNT 40
#define LUA_LEVEL_VALUES_FIELD_COUNT 41
static struct LuaObjectField sLevelValuesFields[LUA_LEVEL_VALUES_FIELD_COUNT] = {
{ "cellHeightLimit", LVT_S16, offsetof(struct LevelValues, cellHeightLimit), false, LOT_NONE },
{ "coinsRequiredForCoinStar", LVT_S16, offsetof(struct LevelValues, coinsRequiredForCoinStar), false, LOT_NONE },
@ -755,6 +755,7 @@ static struct LuaObjectField sLevelValuesFields[LUA_LEVEL_VALUES_FIELD_COUNT] =
{ "extendedPauseDisplay", LVT_U8, offsetof(struct LevelValues, extendedPauseDisplay), false, LOT_NONE },
{ "fixCollisionBugs", LVT_U8, offsetof(struct LevelValues, fixCollisionBugs), false, LOT_NONE },
{ "fixCollisionBugsFalseLedgeGrab", LVT_U8, offsetof(struct LevelValues, fixCollisionBugsFalseLedgeGrab), false, LOT_NONE },
{ "fixCollisionBugsGroundPoundBonks", LVT_U8, offsetof(struct LevelValues, fixCollisionBugsGroundPoundBonks), false, LOT_NONE },
{ "fixCollisionBugsRoundedCorners", LVT_U8, offsetof(struct LevelValues, fixCollisionBugsRoundedCorners), false, LOT_NONE },
{ "fixVanishFloors", LVT_U8, offsetof(struct LevelValues, fixVanishFloors), false, LOT_NONE },
{ "floatingStarDance", LVT_U8, offsetof(struct LevelValues, floatingStarDance), false, LOT_NONE },