new cheat: Unbreakable wings.

This commit is contained in:
Sonic Dreamcaster 2024-11-24 21:12:16 -03:00
parent 16f4c15952
commit 29fb86f92d
2 changed files with 27 additions and 19 deletions

View File

@ -935,6 +935,7 @@ void Player_DamageWings(Player* player, s32 side, s32 damage) {
gRightWingFlashTimer[player->num] = 30; gRightWingFlashTimer[player->num] = 30;
if (player->arwing.rightWingState == WINGSTATE_INTACT) { if (player->arwing.rightWingState == WINGSTATE_INTACT) {
gRightWingHealth[player->num] -= damage; gRightWingHealth[player->num] -= damage;
if (CVarGetInteger("gUnbreakableWings", 0) == 0) {
if (gRightWingHealth[player->num] <= 0) { if (gRightWingHealth[player->num] <= 0) {
Play_SpawnDebris(1, player->hit1.x, player->hit1.y, player->hit1.z); Play_SpawnDebris(1, player->hit1.x, player->hit1.y, player->hit1.z);
player->arwing.rightWingState = WINGSTATE_BROKEN; player->arwing.rightWingState = WINGSTATE_BROKEN;
@ -946,10 +947,12 @@ void Player_DamageWings(Player* player, s32 side, s32 damage) {
} }
} }
} }
}
} else if (side == 2) { } else if (side == 2) {
gLeftWingFlashTimer[player->num] = 30; gLeftWingFlashTimer[player->num] = 30;
if (player->arwing.leftWingState == WINGSTATE_INTACT) { if (player->arwing.leftWingState == WINGSTATE_INTACT) {
gLeftWingHealth[player->num] -= damage; gLeftWingHealth[player->num] -= damage;
if (CVarGetInteger("gUnbreakableWings", 0) == 0) {
if (gLeftWingHealth[player->num] <= 0) { if (gLeftWingHealth[player->num] <= 0) {
Play_SpawnDebris(0, player->hit2.x, player->hit2.y, player->hit2.z); Play_SpawnDebris(0, player->hit2.x, player->hit2.y, player->hit2.z);
player->arwing.leftWingState = WINGSTATE_BROKEN; player->arwing.leftWingState = WINGSTATE_BROKEN;
@ -964,6 +967,7 @@ void Player_DamageWings(Player* player, s32 side, s32 damage) {
} }
} }
} }
}
void Player_ApplyDamage(Player* player, s32 direction, s32 damage) { void Player_ApplyDamage(Player* player, s32 direction, s32 damage) {
Vec3f sp44; Vec3f sp44;

View File

@ -425,7 +425,12 @@ void DrawEnhancementsMenu() {
if (UIWidgets::BeginMenu("Gameplay")) { if (UIWidgets::BeginMenu("Gameplay")) {
UIWidgets::CVarCheckbox("No Level of Detail (LOD)", "gDisableLOD", { UIWidgets::CVarCheckbox("No Level of Detail (LOD)", "gDisableLOD", {
.tooltip = "Disable Level of Detail (LOD) to avoid models using lower poly versions at a distance" .tooltip = "Disable Level of Detail (LOD) to avoid models using lower poly versions at a distance",
.defaultValue = true
});
UIWidgets::CVarCheckbox("Character heads inside Arwings at all times", "gTeamFaces", {
.tooltip = "Character heads are displayed inside Arwings in all cutscenes",
.defaultValue = true
}); });
ImGui::EndMenu(); ImGui::EndMenu();
@ -454,6 +459,7 @@ void DrawEnhancementsMenu() {
void DrawCheatsMenu() { void DrawCheatsMenu() {
if (UIWidgets::BeginMenu("Cheats")) { if (UIWidgets::BeginMenu("Cheats")) {
UIWidgets::CVarCheckbox("Infinite Lives", "gInfiniteLives"); UIWidgets::CVarCheckbox("Infinite Lives", "gInfiniteLives");
UIWidgets::CVarCheckbox("Unbreakable Wings", "gUnbreakableWings");
UIWidgets::CVarCheckbox("Infinite Bombs", "gInfiniteBombs"); UIWidgets::CVarCheckbox("Infinite Bombs", "gInfiniteBombs");
UIWidgets::CVarCheckbox("Hyper Laser", "gHyperLaser"); UIWidgets::CVarCheckbox("Hyper Laser", "gHyperLaser");
@ -475,8 +481,6 @@ void DrawHit64Menu() {
UIWidgets::CVarCheckbox("Start with Peppy dead", "gHit64PeppyDead", { UIWidgets::CVarCheckbox("Start with Peppy dead", "gHit64PeppyDead", {
.tooltip = "Start the level with with Peppy dead." .tooltip = "Start the level with with Peppy dead."
}); });
// UIWidgets::CVarCheckbox("Infinite Bombs", "gInfiniteBombs");
// UIWidgets::CVarCheckbox("Hyper Laser", "gHyperLaser");
ImGui::EndMenu(); ImGui::EndMenu();
} }