From f72da061e95ea8ac6b39b6424459b52e8305f2d9 Mon Sep 17 00:00:00 2001 From: Mors Date: Wed, 9 Aug 2023 05:08:18 +0300 Subject: [PATCH] Small fixes and a new cheat --- DEV_CHANGELOG.md | 11 ++++++++--- VERSION | 2 +- launcher/categories.json | 8 ++++++++ launcher/presets/Modern.ini | 1 + launcher/presets/Recommended.ini | 1 + launcher/presets/Vanilla.ini | 1 + src/game/behaviors/bowser.inc.c | 2 +- src/game/level_update.c | 2 +- src/game/mario_actions_airborne.c | 2 +- src/game/mario_actions_object.c | 20 ++++++++++++++++---- src/game/settings.c | 1 + src/game/settings.h | 1 + src/pc/configfile.c | 1 + 13 files changed, 42 insertions(+), 11 deletions(-) diff --git a/DEV_CHANGELOG.md b/DEV_CHANGELOG.md index 19a8dcb..356cd2d 100644 --- a/DEV_CHANGELOG.md +++ b/DEV_CHANGELOG.md @@ -1,10 +1,15 @@ This is the changelog for the current development commit of the game. For the changelog for the public versions please check the Wiki. -# v3.1.1 (06/05/2023): +# v3.1.1 (09/08/2023): + +### Additions: +- Added the "Easy Bowser Throws" cheat. ### Changes: -- Added a fix for [Big Goombas getting marked as dead after getting punched](https://twitter.com/MarioBrothBlog/status/1651978702408876032) to the "Fix Various Bugs" setting. +- Added a fix for [Big Goombas getting marked as dead after getting punched](https://twitter.com/MarioBrothBlog/status/1651978702408876032) to the "Fix Various Bugs" setting. +- Made long jumping with the "Improved Controls" setting enabled behave exactly the same as long jumping without that setting enabled, so that performing BLJs is now much easier just like before. ### Fixes: - Fixed King Bob-omb's eyes being rendered incorrectly. -- [Fixed compilation and audio issues on macOS](https://github.com/MorsGames/sm64plus/pull/83) thanks to [sofakng](https://github.com/sofakng). \ No newline at end of file +- [Fixed compilation and audio issues on macOS](https://github.com/MorsGames/sm64plus/pull/83) thanks to [sofakng](https://github.com/sofakng). +- Fixed the modified credits text. (Hopefully!) \ No newline at end of file diff --git a/VERSION b/VERSION index 3a285c2..70cdc08 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v3.1.0 \ No newline at end of file +v3.1.1 \ No newline at end of file diff --git a/launcher/categories.json b/launcher/categories.json index ff3af3c..37d00ce 100644 --- a/launcher/categories.json +++ b/launcher/categories.json @@ -1000,6 +1000,14 @@ "disabled_by": -1, "name": "Moon Jump" }, { + "internal_name": "easy_bowser_throws", + "description": "Makes throwing Bowser easier. For babies.", + "os": OS_ANY, + "type": TYPE_BOOL, + "enabled_by": -1, + "disabled_by": -1, + "name": "Easy Bowser Throws" + },{ "internal_name": "blj_everywhere", "description": "Allows you to perform a BLJ out of thin air. Shoutouts to Kaze.", "os": OS_ANY, diff --git a/launcher/presets/Modern.ini b/launcher/presets/Modern.ini index cb4ac32..7c820d1 100644 --- a/launcher/presets/Modern.ini +++ b/launcher/presets/Modern.ini @@ -154,6 +154,7 @@ debug_movement_mode = "false" debug_cap_changer = "false" debug_object_spawner = "false" moon_jump = "0" +easy_bowser_throws = "false" blj_everywhere = "0" god_mode = "false" hyperspeed_mode = "false" diff --git a/launcher/presets/Recommended.ini b/launcher/presets/Recommended.ini index 2421016..a25bdb8 100644 --- a/launcher/presets/Recommended.ini +++ b/launcher/presets/Recommended.ini @@ -154,6 +154,7 @@ debug_movement_mode = "false" debug_cap_changer = "false" debug_object_spawner = "false" moon_jump = "0" +easy_bowser_throws = "false" blj_everywhere = "0" god_mode = "false" hyperspeed_mode = "false" diff --git a/launcher/presets/Vanilla.ini b/launcher/presets/Vanilla.ini index b04d813..50658ae 100644 --- a/launcher/presets/Vanilla.ini +++ b/launcher/presets/Vanilla.ini @@ -154,6 +154,7 @@ debug_movement_mode = "false" debug_cap_changer = "false" debug_object_spawner = "false" moon_jump = "0" +easy_bowser_throws = "false" blj_everywhere = "0" god_mode = "false" hyperspeed_mode = "false" diff --git a/src/game/behaviors/bowser.inc.c b/src/game/behaviors/bowser.inc.c index 9ff4cf9..cb8028b 100644 --- a/src/game/behaviors/bowser.inc.c +++ b/src/game/behaviors/bowser.inc.c @@ -1634,7 +1634,7 @@ void bowser_thrown_dropped_update(void) { // Set throw action and vel values cur_obj_get_thrown_or_placed(1.0f, 1.0f, BOWSER_ACT_THROWN); // Set swing speed based of angle - swingSpd = o->oBowserHeldAngleVelYaw / 3000.0 * 70.0f; + swingSpd = o->oBowserHeldAngleVelYaw / 3000.0 * (configEasyBowserThrows ? 140.0f : 70.0f); // If less than 0, reduce speed if (swingSpd < 0.0f) { swingSpd = -swingSpd; diff --git a/src/game/level_update.c b/src/game/level_update.c index 43ada45..0a1842f 100644 --- a/src/game/level_update.c +++ b/src/game/level_update.c @@ -131,7 +131,7 @@ const char *credits16[] = { "4SCREEN TEXT WRITER", "GERMAN TRANSLATION", "THOMAS "THOMAS SPINDLER" }; #endif const char *credits17[] = { "4MARIO VOICE", "PEACH VOICE", "CHARLES MARTINET", "LESLIE SWAN" }; -const char *credits18[] = { "3SM64 PLUS BY", "MORS" }; +const char *credits18[] = { "3SM64 PLUS BY", "MORS", "SM64 PORT TEAM", "SM64 DECOMP TEAM" }; /*const char *credits18[] = { "3SPECIAL THANKS TO", "EAD STAFF", "ALL NINTENDO PERSONNEL", #ifdef VERSION_US "MARIO CLUB STAFF" }; diff --git a/src/game/mario_actions_airborne.c b/src/game/mario_actions_airborne.c index 4ab7b27..4934c50 100644 --- a/src/game/mario_actions_airborne.c +++ b/src/game/mario_actions_airborne.c @@ -257,7 +257,7 @@ void update_air_without_turn(struct MarioState *m, u32 canTurn) { intendedDYaw = m->intendedYaw - m->faceAngle[1]; intendedMag = m->intendedMag / 32.0f; - if (configImprovedControls) { + if (configImprovedControls && m->action != ACT_LONG_JUMP) { if ((m->forwardVel > 0 && intendedMag * coss(intendedDYaw) > 0) || (m->forwardVel < 0 && intendedMag * coss(intendedDYaw) < 0)) { if (m->action != ACT_WALL_KICK_AIR) m->forwardVel += intendedMag * coss(intendedDYaw) * 1.5f; diff --git a/src/game/mario_actions_object.c b/src/game/mario_actions_object.c index 6eae17c..7ebdd69 100644 --- a/src/game/mario_actions_object.c +++ b/src/game/mario_actions_object.c @@ -384,11 +384,23 @@ s32 act_holding_bowser(struct MarioState *m) { m->twirlYaw = m->intendedYaw; m->angleVel[1] += spin; - if (m->angleVel[1] > 0x1000) { - m->angleVel[1] = 0x1000; + if (configEasyBowserThrows) + { + if (m->angleVel[1] > 0x900) { + m->angleVel[1] = 0x900; + } + if (m->angleVel[1] < -0x900) { + m->angleVel[1] = -0x900; + } } - if (m->angleVel[1] < -0x1000) { - m->angleVel[1] = -0x1000; + else + { + if (m->angleVel[1] > 0x1000) { + m->angleVel[1] = 0x1000; + } + if (m->angleVel[1] < -0x1000) { + m->angleVel[1] = -0x1000; + } } } } else { diff --git a/src/game/settings.c b/src/game/settings.c index 5fbec5b..b28715b 100644 --- a/src/game/settings.c +++ b/src/game/settings.c @@ -262,6 +262,7 @@ s8 gDebugMovementMode = 0; s8 gDebugCapChanger = 0; s8 configDebugObjectSpawner = 0; unsigned int configMoonJump = 0; +s8 configEasyBowserThrows = 0; unsigned int configBLJEverywhere = 0; s8 configGodMode = 0; s8 configHyperspeedMode = 0; diff --git a/src/game/settings.h b/src/game/settings.h index d9ec857..95a642d 100644 --- a/src/game/settings.h +++ b/src/game/settings.h @@ -111,6 +111,7 @@ extern s8 gDebugMovementMode; extern s8 gDebugCapChanger; extern s8 configDebugObjectSpawner; extern unsigned int configMoonJump; +extern s8 configEasyBowserThrows; extern unsigned int configBLJEverywhere; extern s8 configGodMode; extern s8 configHyperspeedMode; diff --git a/src/pc/configfile.c b/src/pc/configfile.c index 284a3ea..1b4bbe7 100644 --- a/src/pc/configfile.c +++ b/src/pc/configfile.c @@ -201,6 +201,7 @@ static const struct ConfigOption options[] = { { .name = "debug_cap_changer", .type = CONFIG_TYPE_BOOL, .boolValue = &gDebugCapChanger }, { .name = "debug_object_spawner", .type = CONFIG_TYPE_BOOL, .boolValue = &configDebugObjectSpawner }, { .name = "moon_jump", .type = CONFIG_TYPE_UINT, .uintValue = &configMoonJump }, + { .name = "easy_bowser_throws", .type = CONFIG_TYPE_BOOL, .boolValue = &configEasyBowserThrows }, { .name = "blj_everywhere", .type = CONFIG_TYPE_UINT, .uintValue = &configBLJEverywhere }, { .name = "god_mode", .type = CONFIG_TYPE_BOOL, .boolValue = &configGodMode }, { .name = "hyperspeed_mode", .type = CONFIG_TYPE_BOOL, .boolValue = &configHyperspeedMode },