From 730f020b6d5c3bbafe0fde829fdf1dbfba787c82 Mon Sep 17 00:00:00 2001 From: Arceveti <73617174+Arceveti@users.noreply.github.com> Date: Fri, 21 Jan 2022 20:00:25 -0800 Subject: [PATCH] Fix formatting inconsistencies in config files (#303) Fix formatting inconsistencies in config files --- include/config/config_audio.h | 8 ++-- include/config/config_benchmark.h | 8 ++-- include/config/config_camera.h | 32 ++++++++-------- include/config/config_collision.h | 4 +- include/config/config_cutscenes.h | 6 +-- include/config/config_debug.h | 22 +++++------ include/config/config_game.h | 33 ++++++++-------- include/config/config_goddard.h | 6 +-- include/config/config_graphics.h | 30 +++++++-------- include/config/config_interaction.h | 9 ++--- include/config/config_menu.h | 8 ++-- include/config/config_movement.h | 59 ++++++++++++++--------------- include/config/config_objects.h | 22 +++++------ include/config/config_rom.h | 6 +-- include/config/config_safeguards.h | 35 ++++++++--------- include/config/config_world.h | 52 ++++++++++++------------- src/game/mario_actions_airborne.c | 22 ++--------- 17 files changed, 172 insertions(+), 190 deletions(-) diff --git a/include/config/config_audio.h b/include/config/config_audio.h index 1d1f5270..23fabaad 100644 --- a/include/config/config_audio.h +++ b/include/config/config_audio.h @@ -4,12 +4,12 @@ * AUDIO SETTINGS * ******************/ -// Fixes the castle music sometimes triggering after getting a dialog +// Fixes the castle music sometimes triggering after getting a dialog. #define CASTLE_MUSIC_FIX -// Increase audio heap size to allow for more concurrent notes to be played and for more custom sequences/banks to be imported (not supported for SH) +// Increases the audio heap size to allow for more concurrent notes to be played and for more custom sequences/banks to be imported (not supported for SH). #define EXPAND_AUDIO_HEAP -// Use a much better implementation of reverb over vanilla's fake echo reverb. Great for caves or eerie levels, as well as just a better audio experience in general. +// Uses a much better implementation of reverb over vanilla's fake echo reverb. Great for caves or eerie levels, as well as just a better audio experience in general. // Reverb parameters can be configured in audio/synthesis.c to meet desired aesthetic/performance needs. Currently US/JP only. Hurts emulator and console performance. -//#define BETTER_REVERB +// #define BETTER_REVERB diff --git a/include/config/config_benchmark.h b/include/config/config_benchmark.h index 980e857f..16a24391 100644 --- a/include/config/config_benchmark.h +++ b/include/config/config_benchmark.h @@ -3,11 +3,11 @@ /********************** * BENCHMARK SETTINGS * **********************/ -/** - * Enabling this will enable a set of defines in order to run a benchmark on the game - * Currently this just starts the credits, and enables puppyprint debug -*/ +/** + * Enabling this will enable a set of defines in order to run a benchmark on the game. + * Currently this just starts the credits, and enables PUPPYPRINT_DEBUG. +*/ // #define ENABLE_CREDITS_BENCHMARK #ifdef ENABLE_CREDITS_BENCHMARK diff --git a/include/config/config_camera.h b/include/config/config_camera.h index 813dc1c0..0cbc7269 100644 --- a/include/config/config_camera.h +++ b/include/config/config_camera.h @@ -4,37 +4,37 @@ * CAMERA SETTINGS * *******************/ -// Force the camera mode to your choice (except when swimming or flying) +// Forces the camera mode to your choice (except when swimming or flying). // It does this by setting the area's camera->defMode to this mode, and also -// changes hardcoded modes to use c->defMode -// Note: removes door cutscenes due to the way they're designed to work with specific modes -// Search for FORCED_CAMERA_MODE in camera.c for more information +// changes hardcoded modes to use c->defMode. +// Note: removes door cutscenes due to the way they're designed to work with specific modes. +// Search for FORCED_CAMERA_MODE in camera.c for more information. #define FORCED_CAMERA_MODE CAMERA_MODE_8_DIRECTIONS -// Changes hardcoded camera mode reverting to instead use the area's default mode (defMode) -// If you're using a FORCED_CAMERA_MODE, this must be on for it to work +// Changes hardcoded camera mode reverting to instead use the area's default mode (defMode). +// If you're using a FORCED_CAMERA_MODE, this must be on for it to work. #define USE_COURSE_DEFAULT_MODE /***** Movement specific camera modes: *****/ -// Camera mode when Mario is < 400 units away from the water surface (default is CAMERA_MODE_WATER_SURFACE) +// Camera mode when Mario is < 400 units away from the water surface (default is CAMERA_MODE_WATER_SURFACE). #define WATER_SURFACE_CAMERA_MODE CAMERA_MODE_WATER_SURFACE -// Camera mode when Mario is > 800 units away from the water surface (default is CAMERA_MODE_BEHIND_MARIO) +// Camera mode when Mario is > 800 units away from the water surface (default is CAMERA_MODE_BEHIND_MARIO). #define DEEP_WATER_CAMERA_MODE CAMERA_MODE_BEHIND_MARIO -// Camera mode when Mario is flying (default is CAMERA_MODE_BEHIND_MARIO) +// Camera mode when Mario is flying (default is CAMERA_MODE_BEHIND_MARIO). #define FLYING_CAMERA_MODE CAMERA_MODE_BEHIND_MARIO /*******************************************/ -// Makes the camera approach Mario's height much more quickly +// Makes the camera approach Mario's height much more quickly. #define FAST_VERTICAL_CAMERA_MOVEMENT -// Enables "parallel lakitu camera" or "aglab cam" which lets you move the camera smoothly with the dpad +// Enables "parallel lakitu camera" or "aglab cam" which lets you move the camera smoothly with the D-pad. #define PARALLEL_LAKITU_CAM // Enables Puppy Camera 2, a rewritten camera that can be freely configured and modified. // #define PUPPYCAM // Note: Reonucam is available, but because we had no time to test it properly, it's included as a patch rather than being in the code by default. -// Run this command to apply the patch if you want to use it: +// Run this command to apply the patch if you want to use it: // tools/apply_patch.sh enhancements/reonucam.patch // Consider it a beta, but it should work fine. Please report any bugs with it. Applying the patch will simply add a define here, so you can still turn it off even after patching. @@ -42,13 +42,13 @@ /***** Vanilla config options *****/ /**********************************/ -// Included for ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS define +// Included for ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS define. #include "config_game.h" -// Allow course specific camera processing -// You will likely want this disabled in non-vanilla hacks +// Allow course specific camera processing. +// You will likely want this disabled in non-vanilla hacks. // This is automatically enabled when ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS is enabled, -// but feel free to override it if you really want to for some reason +// but feel free to override it if you really want to for some reason/ #ifdef ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS #define ENABLE_VANILLA_CAM_PROCESSING #endif diff --git a/include/config/config_collision.h b/include/config/config_collision.h index 24491efc..f5c162c6 100644 --- a/include/config/config_collision.h +++ b/include/config/config_collision.h @@ -8,10 +8,10 @@ // The defined number is the forward speed threshold before the change is active, since it's only noticeable at lower speeds. #define FAST_FLOOR_ALIGN 10 -// Automatically calculate the optimal collision distance for an object based on its vertices. +// Automatically calculates the optimal collision distance for an object based on its vertices. #define AUTO_COLLISION_DISTANCE -// Allow all surfaces types to have force, (doesn't require setting force, just allows it to be optional). +// Allows all surfaces types to have force, (doesn't require setting force, just allows it to be optional). #define ALL_SURFACES_HAVE_FORCE // Number of walls that can push Mario at once. Vanilla is 4. diff --git a/include/config/config_cutscenes.h b/include/config/config_cutscenes.h index 4844dcb3..e39dcb7c 100644 --- a/include/config/config_cutscenes.h +++ b/include/config/config_cutscenes.h @@ -6,8 +6,8 @@ // -- CUTSCENE SKIPS -- -// Skip peach letter cutscene +// Skips the peach letter cutscene. #define PEACH_SKIP -// Uncomment this if you want to skip the title screen (Super Mario 64 logo) -//#define SKIP_TITLE_SCREEN +// Skips the title/splash screen (Super Mario 64 logo). +// #define SKIP_TITLE_SCREEN diff --git a/include/config/config_debug.h b/include/config/config_debug.h index 6a25c343..1d5b3b88 100644 --- a/include/config/config_debug.h +++ b/include/config/config_debug.h @@ -7,7 +7,7 @@ // Enables most debug options, including PUPPYPRINT_DEBUG. // #define DEBUG_ALL -// Disables all debug options (except PUPPYPRINT) +// Disables all debug options (except PUPPYPRINT). #define DISABLE_ALL // TEST LEVEL @@ -16,37 +16,37 @@ // If you want the game to boot normally, just comment out the define again. // #define TEST_LEVEL LEVEL_BOB -// Enable debug level select. Hold L while the game boots to turn it on. +// Enables debug level select. Hold L while the game boots to turn it on. #define DEBUG_LEVEL_SELECT -// Enable debug free move (DPad up to enter, A to exit). +// Enables debug free move (D-pad up to enter, A to exit). #define ENABLE_DEBUG_FREE_MOVE -// Include a custom, enhanced performance profiler. (Enables PUPPYPRINT by default in config_safeguards). +// Enables a custom, enhanced performance profiler. (Enables PUPPYPRINT by default in config_safeguards). // #define PUPPYPRINT_DEBUG 1 -// Use cycles instead of microseconds in Puppyprint debug output. +// Uses cycles instead of microseconds in Puppyprint debug output. // #define PUPPYPRINT_DEBUG_CYCLES -// A vanilla style debug mode. It doesn't rely on a text engine, but it's much less powerful that PUPPYPRINT_DEBUG. -// Press DPAD left to show the debug UI. +// A vanilla style debug mode. It doesn't rely on a text engine, but it's much less powerful that PUPPYPRINT_DEBUG. +// Press D-pad left to show the debug UI. // #define VANILLA_STYLE_CUSTOM_DEBUG -// Visual debug enables some collision visuals. Tapping Right on the dpad will cycle between visual hitboxes, visual surfaces, both, and neither. +// Visual debug enables some collision visuals. Tapping Right on the D-pad will cycle between visual hitboxes, visual surfaces, both, and neither. // If puppyprint is enabled, then this can be cycled only while the screen is active. // #define VISUAL_DEBUG -// Open all courses and doors. Used for debugging purposes to unlock all content. +// Opens all courses and doors. Used for debugging purposes to unlock all content. #define UNLOCK_ALL // Same as above, but also reads all save file flags as complete. // This will not overwrite existing save file data unless you save over it. // #define COMPLETE_SAVE_FILE -// Removes the limit on FPS +// Removes the limit on FPS. // #define UNLOCK_FPS -// Include vanilla debug functionality. +// Includes vanilla debug functionality. // #define VANILLA_DEBUG // Forces a crash when the game starts. Useful for debugging the crash screen. diff --git a/include/config/config_game.h b/include/config/config_game.h index f0803767..a1b3289c 100644 --- a/include/config/config_game.h +++ b/include/config/config_game.h @@ -4,29 +4,29 @@ * GAME SETTINGS * *****************/ -/** +/** * Enables some mechanics that change behavior depending on hardcoded level numbers. - * You may also need to change sLevelsWithRooms in object_helpers.c - * TODO: separate this into separate defines, behavior params, or make these mechanics otherwise dynamic + * You may also need to change sLevelsWithRooms in object_helpers.c. + * TODO: separate this into separate defines, behavior params, or make these mechanics otherwise dynamic. */ // #define ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS -// Disable lives and hide the lives counter +// Disables lives and hides the lives counter. #define DISABLE_LIVES -// Save number of lives to the save file (Does nothing if DISABLE_LIVES is enabled) +// Saves the number of lives to the save file (Does nothing if DISABLE_LIVES is enabled). #define SAVE_NUM_LIVES -// The number of lives Mario starts with after a game over or starting the game for the first time (must be lower than 127) +// This is the number of lives Mario starts with after a game over or starting the game for the first time (must be lower than 127). #define DEFAULT_NUM_LIVES 4 -// This can be 0..127 +// This can be 0..127. #define MAX_NUM_LIVES 100 -// This can be 0..32767 +// This can be 0..32767. #define MAX_NUM_COINS 999 -// Air/Breath meter is separate from health meter when underwater +// Air/breath meter is separate from health meter when underwater. // #define BREATH_METER // Number of coins to spawn the "100 coin" star. If you remove the define altogether, then there won't be a 100 coin star at all. @@ -39,30 +39,28 @@ */ // #define NON_STOP_STARS -// Uncomment this if you want global star IDs (useful for creating an open world hack ala MVC) +// Uncomment this if you want global star IDs (useful for creating an open world hack ala MVC). // #define GLOBAL_STAR_IDS -// Number of possible unique model ID's (keep it higher than 256) +// Number of possible unique model ID's (keep it higher than 256). #define MODEL_ID_COUNT 256 // Number of supported areas per level. #define AREA_COUNT 8 // Makes signs and NPCs easier to talk to. -// NOTE: Currently has issues with talking to Bowser post-fight, -// https://github.com/Reonu/HackerSM64/issues/273 // #define EASIER_DIALOG_TRIGGER -// Show an "A" when Mario is able to talk [requires EASIER_DIALOG_TRIGGER] +// Shows an "A" when Mario is able to talk [requires EASIER_DIALOG_TRIGGER]. // #define DIALOG_INDICATOR // Include the English characters that were missing from US segment2 // J, Q, V, X, Z, ยจ, !, !!, ?, &, %, ., and the beta key. -// [MAKE SURE TO HAVE EU AND JP/SH BASEROMS TO OBTAIN THE ASSETS] +// [MAKE SURE TO INCLUDE EU AND JP/SH BASEROMS IN THE REPO TO OBTAIN THE ASSETS] // If this is disabled, backup assets will be used. // #define COMPLETE_EN_US_SEGMENT2 -/// Removes multi-language cake screen +// Removes multi-language cake screen. #define EU_CUSTOM_CAKE_FIX // Adds multiple languages to the game. Just a placeholder for the most part, because it only works with EU, and must be enabled with EU. @@ -71,5 +69,6 @@ // Prevents infinite death loops by always restoring Mario's health when he's warped to any kind of warp while dead. #define PREVENT_DEATH_LOOP -// The level that the game starts in after file select. The levelscript needs to have a MARIO_POS command for this to work. +// The level that the game starts with immediately after file select. +// The levelscript needs to have a MARIO_POS command for this to work. #define START_LEVEL LEVEL_CASTLE_GROUNDS diff --git a/include/config/config_goddard.h b/include/config/config_goddard.h index 19f6d6fe..a7d7a94f 100644 --- a/include/config/config_goddard.h +++ b/include/config/config_goddard.h @@ -4,11 +4,11 @@ * GODDARD SETTINGS * ********************/ -// Uncomment this if you want to keep the mario head and not skip it +// Enables Goddard (the Mario head). // #define KEEP_MARIO_HEAD -// Goddard easter egg from Shindou (has no effect if KEEP_MARIO_HEAD is disabled) +// Enables the Goddard easter egg from Shindou (has no effect if KEEP_MARIO_HEAD is disabled). #define GODDARD_EASTER_EGG -// Disables the demo that plays when idle on the start screen (has no effect if KEEP_MARIO_HEAD is disabled) +// Disables the demo that plays when idle on the start screen (has no effect if KEEP_MARIO_HEAD is disabled). #define DISABLE_DEMO diff --git a/include/config/config_graphics.h b/include/config/config_graphics.h index d693f6c0..99743c80 100644 --- a/include/config/config_graphics.h +++ b/include/config/config_graphics.h @@ -4,21 +4,21 @@ * GRAPHICS SETTINGS * *********************/ -// Size of how large the master display list (gDisplayListHead) can be. 6400 is vanilla +// The size of the master display list (gDisplayListHead). 6400 is vanilla. #define GFX_POOL_SIZE 10000 -// Show a watermark in the title screen that reads "Made with HackerSM64", instead of the copyright message +// Show a watermark on the title screen that reads "Made with HackerSM64", instead of the copyright message. #define INTRO_CREDIT -// Spawn floombas in the title screen +// Spawns floombas on the title screen. #define INTRO_FLOOMBAS -// Enable widescreen (16:9) support +// Enables widescreen (16:9) support. #define WIDE // Skybox size modifier, changing this will add support for larger skybox images. NOTE: Vanilla skyboxes may break if you change this option. Be sure to rescale them accordingly. // Whenever you change this, make sure to run "make -C tools clean" to rebuild the skybox tool (alternatively go into skyconv.c and change the file in any way (like adding/deleting a space) to specifically rebuild that tool). -// When increasing this, you should probably also increase the GFX pool size. (the GFX_POOL_SIZE define above) +// When increasing this, you should probably also increase the GFX pool size (the GFX_POOL_SIZE define above). #define SKYBOX_SIZE 1 // When this option is enabled, LODs will ONLY work on console. @@ -26,17 +26,17 @@ // Regardless of whether this setting is enabled or not, you can use gIsConsole to wrap your own code in a console check. #define AUTO_LOD -// Include Puppyprint, a display library for text and large images. -// Automatically included when PUPPYPRINT_DEBUG is enabled +// Enables Puppyprint, a display library for text and large images. +// Automatically enabled when PUPPYPRINT_DEBUG is enabled. // #define PUPPYPRINT -// Disable AA (Improves console performance but causes visible seams between unconnected geometry). +// Disables AA (Improves console performance but causes visible seams between unconnected geometry). // #define DISABLE_AA // Makes the coins ia8 64x64 instead of ia16 32x32. Uses new ia8 textures so that vanilla coins look better. #define IA8_COINS -// Similar to the above, but 30 FPS (Textures by InTheBeef, cleaned up by Arceveti) +// Similar to the above, but 30 FPS (Textures by InTheBeef, cleaned up by Arceveti). #define IA8_30FPS_COINS // Use .rej microcode for certain objects (experimental - only should be used when F3DEX_GBI_2 is defined). @@ -45,7 +45,7 @@ // #define OBJECTS_REJ /** - * Mario's silhouette when behind solid objects/surfaces + * Mario's silhouette when behind solid objects/surfaces. * Also enables new render layers, such as LAYER_ALPHA_DECAL. * The number is the intensity of the silhouette, from 0-255. * NOTE: The overlap between Mario's model parts is visible on certain HLE plugins. @@ -63,24 +63,24 @@ // Fixes the game reading the ia8 burn smoke texture as an rgba16. #define BURN_SMOKE_FIX -// Disable the fix to Koopa's unshelled model. +// Disables the fix to Koopa's unshelled model. #define KOOPA_KEEP_PINK_SHORTS // Lightweight directional lighting engine by Fazana. Intended for giving proximity and positional pointlights to small objects. -// NOTE: Stil breaks occasionally, and PUPPYLIGHT_NODE doesn't work in areas that aren't area 1. +// NOTE: Still breaks occasionally, and PUPPYLIGHT_NODE might not work in areas that aren't area 1. // #define PUPPYLIGHTS // Uses the correct "up" vector for the guLookAtReflect call in geo_process_master_list_sub. -// It is sideways in vanilla, and since vanilla's environment map textures are sideways too, they will appear as sideways in-game if this is enabled. +// It is sideways in vanilla, and since vanilla's environment map textures are sideways too, those will appear as sideways in-game if this is enabled. // Make sure your custom environment map textures are the correct orientation. // #define FIX_REFLECT_MTX // This improves performance a bit, and does not seem to break anything. #define DISABLE_GRAPH_NODE_TYPE_FUNCTIONAL -// Disables object shadows. You'll probably only want this either as a last resort for performance or if you're making a super stylized hack. +// Disables all object shadows. You'll probably only want this either as a last resort for performance or if you're making a super stylized hack. // #define DISABLE_SHADOWS -// Use old shadow IDs for Fast64 compatibility. This is a temporary fix until Fast64 is updated to use the enum defines. +// Uses old shadow IDs for Fast64 compatibility. This is a temporary fix until Fast64 is updated to use the enum defines. // NOTE: When this is enabled, The 49th hardcoded rectangle shadow will act as a regular circular shadow, due to Mario's shadow ID being 99 in vanilla. #define LEGACY_SHADOW_IDS diff --git a/include/config/config_interaction.h b/include/config/config_interaction.h index 47ec1fa1..3cf48eed 100644 --- a/include/config/config_interaction.h +++ b/include/config/config_interaction.h @@ -6,10 +6,9 @@ // Various interaction related settings, bug fixes or QoL changes -/** - * This bug allows mario to move when initiating a dialog, - * just as long as mario doesn't enter an action that can - * be interrupted with text - * Uncomment this to fix this bug, and frustrate speedrunners +/** + * This fixes a bug which allows mario to move when initiating + * a dialog. just as long as mario doesn't enter an action that + * can be interrupted with text. */ // #define BUGFIX_DIALOG_TIME_STOP diff --git a/include/config/config_menu.h b/include/config/config_menu.h index 925c795d..0eae45b5 100644 --- a/include/config/config_menu.h +++ b/include/config/config_menu.h @@ -6,13 +6,13 @@ // -- EXIT COURSE SETTINGS -- -// Disable exit course -//#define DISABLE_EXIT_COURSE +// Disables Exit Course. +// #define DISABLE_EXIT_COURSE -// Decides whether you can exit course while moving (has no effect if you disable exit course) +// Decides whether you can exit course while moving (has no effect if you disable Exit Course). #define EXIT_COURSE_WHILE_MOVING -// Decides which level, area and warp ID the "exit course" option takes you to (has no effect if you disable exit course) +// Decides which level, area and warp ID the "Exit Course" option takes you to (has no effect if you disable Exit Course). // Ensure that the warp exists, or else the game will crash. #define EXIT_COURSE_LEVEL LEVEL_CASTLE #define EXIT_COURSE_AREA 0x01 diff --git a/include/config/config_movement.h b/include/config/config_movement.h index 072c3316..6fa9ff7f 100644 --- a/include/config/config_movement.h +++ b/include/config/config_movement.h @@ -7,79 +7,78 @@ // Changes Mario's ground turn radius by making it dependent on the analog stick magnitude and speed. // #define VELOCITY_BASED_TURN_SPEED -// Allows Mario to easily side flip when moving forwards at any speed +// Allows Mario to easily side flip when moving forwards at any speed. // #define SIDE_FLIP_AT_LOW_SPEEDS // Allows Mario to aim towards a new direction at the end of turning around, -// and allows Mario to turn around multiple times in a row +// and allows Mario to turn around multiple times in a row. // #define RESET_DIRECTION_WHEN_TURNING_AROUND // Improved hanging: -// - Doesn't require holding down the A button -// - Precise turning control -// - Prevents falling from the edges +// - Doesn't require holding down the A button. +// - Precise turning control. +// - Prevents falling from the edges. #define BETTER_HANGING -// Change the movement speed when hanging from a ceiling (the vanilla value is 4.0f, has no effect if BETTER_HANGING is enabled) +// Change the movement speed when hanging from a ceiling (the vanilla value is 4.0f, has no effect if BETTER_HANGING is enabled). #define HANGING_SPEED 12.0f -// Prevents Mario from falling asleep while idle +// Prevents Mario from falling asleep while idle. // #define NO_SLEEP -// Disables fall damage +// Disables fall damage. #define NO_FALL_DAMAGE -// Disables the scream that mario makes when falling off a great height (this is separate from actual fall damage) -//#define NO_FALL_DAMAGE_SOUND +// Disables the scream that mario makes when falling off a great height (this is separate from actual fall damage). +// #define NO_FALL_DAMAGE_SOUND -// Fall height for normal fall damage. Vanilla is 1150.0f +// Fall height for normal fall damage. Vanilla is 1150.0f. #define FALL_DAMAGE_HEIGHT_SMALL 1150.0f -// Fall height for double fall damage. Vanilla is 3000.0f +// Fall height for double fall damage. Vanilla is 3000.0f. #define FALL_DAMAGE_HEIGHT_LARGE 3000.0f -// Disables Mario getting stuck in snow and sand when falling +// Disables Mario getting stuck in snow and sand when falling. // #define NO_GETTING_BURIED -// Prevents hands-free holding. (WARNING: Enabling this may make you a total buzzkill) +// Prevents hands-free holding. // #define HANDS_FREE_HOLDING_FIX -// Prevents Mario losing his cap. -//#define PREVENT_CAP_LOSS +// Prevents Mario from losing his cap. +// #define PREVENT_CAP_LOSS -// Platform displacement 2 also known as momentum patch. Makes Mario keep the momemtum from moving platforms. Doesn't break treadmills anymore! +// Enables Platform Displacement 2, also known as momentum patch. Makes Mario keep the momemtum from moving platforms. #define PLATFORM_DISPLACEMENT_2 -// Use Shindou's pole behavior -//#define SHINDOU_POLES +// Uses Shindou's pole behavior. +// #define SHINDOU_POLES -// If A and Z are pressed on the same frame, Mario will long jump instead of ground pound. +// If A and Z are pressed on the same frame while running, Mario will long jump instead of ground pound. #define EASIER_LONG_JUMPS -// Hold Z while twirling to descend faster +// Enables the ability to hold Z while twirling to descend faster. #define Z_TWIRL -// Disables bonks when ground pounding next to a wall +// Disables bonks when ground pounding next to a wall. #define DISABLE_GROUNDPOUND_BONK -// Allows Mario to jump kick on steep surfaces that are set to be non slippery, instead of being forced to dive +// Allows Mario to jump kick on steep surfaces that are set to be non slippery, instead of being forced to dive. #define JUMP_KICK_FIX -// Allow Mario to grab hangable ceilings from any state +// Allows Mario to grab hangable ceilings from any state. #define HANGING_FIX -// The last frame that will be considered a firsty when wallkicking +// The last frame after hitting a wall that will be considered a firsty when wallkicking. #define FIRSTY_LAST_FRAME 1 // The maximum angle the player can wall kick, in degrees. 0..90. To allow 45 degree wall kicks, you must supply `46` to allow 45 and under. #define WALL_KICK_DEGREES 45 -// This is vanilla behavior, disable to allow ledge grabbing on -// any surface angle +// This is vanilla behavior, disable it to allow ledge grabbing regardless of floor pitch. // #define LEDGE_GRABS_CHECK_SLOPE_ANGLE -// Disable BLJs and crush SimpleFlips's dreams -//#define DISABLE_BLJ +// Disables BLJs and crushes SimpleFlips's dreams. +// #define DISABLE_BLJ -// Re-enable upwarping when entering water. Forces you to only enter water from the top +// Re-enables upwarping when entering water. Forces you to only enter water from the top. // #define WATER_PLUNGE_UPWARP diff --git a/include/config/config_objects.h b/include/config/config_objects.h index 9158980a..488c4def 100644 --- a/include/config/config_objects.h +++ b/include/config/config_objects.h @@ -6,16 +6,15 @@ // -- COIN -- -// The distance from Mario which coin formations spawn coins at. -// Vanilla is 2000.0f. +// The distance from Mario at which coin formations spawn their coins. Vanilla is 2000.0f. // Set this to o->oDrawingDistance for a more reasonable range at the cost of performance. #define COIN_FORMATION_DISTANCE 2000.0f // Moving Coins flicker and disappear when they hit lava instead of being instantly deleted. #define COIN_LAVA_FLICKER -// Allow for retries on collecting the remaining blue coins from a blue coin switch. -//#define BLUE_COIN_SWITCH_RETRY +// Allows for retries on collecting the remaining blue coins from a blue coin switch. +// #define BLUE_COIN_SWITCH_RETRY // -- GOOMBA -- @@ -23,25 +22,26 @@ // #define TINY_GOOMBA_ALWAYS_DROPS_COIN // Floombas! These fellas sport custom behaviors (bhvFloomba, bhvFloombaTripletSpawner) and of course the iconic Floomba texture. -// Also support macros (macro_floomba, macro_huge_floomba, macro_tiny_floomba, macro_floomba_triplet_spawner, macro_floomba_quintuplet_spawner). +// Also supports macros (macro_floomba, macro_huge_floomba, macro_tiny_floomba, macro_floomba_triplet_spawner, macro_floomba_quintuplet_spawner). #define FLOOMBAS // -- HOOT -- -// Use intendedYaw to control Hoot instead of raw left and right inputs. +// Uses intendedYaw to control Hoot instead of the raw left and right inputs. #define HOOT_YAW_FIX -// Leaf particles occasionally fall from trees which contain Hoot. +// Causes leaf particles to occasionally fall from trees which contain Hoot. #define HOOT_TREE_PARTICLES // -- MR I -- -// Uncomment to allow MR I to shoot his particle in any direction +// Enables Mr I to shoot his particle in any direction. // #define MR_I_PITCH_SHOOTING // -- WATER RING -- // Fix DDD water rings by checking for interaction rather than normals. +//! NOT IMPLEMENTED // #define FIX_WATER_RINGS // -- POWER STAR -- @@ -56,12 +56,12 @@ // -- PLATFORM ON TRACK -- -// The speed of a platform on a track can be controlled by standing near the front or back of it -//#define CONTROLLABLE_PLATFORM_SPEED +// Allows the speed of a platform on a track to be controlled by standing near the front or back of it. +// #define CONTROLLABLE_PLATFORM_SPEED // -- CHAIN CHOMP -- -// The number of chain balls the Chain Chomp has. Vanilla is 5. +// The number of chain balls the Chain Chomp has. Vanilla is 5. #define CHAIN_CHOMP_NUM_SEGMENTS 5 // -- POKEY -- diff --git a/include/config/config_rom.h b/include/config/config_rom.h index 69961d17..9866b51f 100644 --- a/include/config/config_rom.h +++ b/include/config/config_rom.h @@ -8,11 +8,11 @@ // The end quote should be here: " #define INTERNAL_ROM_NAME "HackerSM64 " -// Support Rumble Pak +// Enables Rumble Pak Support. // Currently not recommended, as it may cause random crashes. -//#define ENABLE_RUMBLE (1 || VERSION_SH) +// #define ENABLE_RUMBLE (1 || VERSION_SH) -// Screen Size Defines +// Screen Size Defines. #define SCREEN_WIDTH 320 #define SCREEN_HEIGHT 240 diff --git a/include/config/config_safeguards.h b/include/config/config_safeguards.h index 22364085..d7729686 100644 --- a/include/config/config_safeguards.h +++ b/include/config/config_safeguards.h @@ -11,7 +11,7 @@ /***************** - * config_graphics + * config_graphics.h */ #ifndef F3DEX_GBI_2 @@ -23,20 +23,20 @@ #endif // !F3DEX_GBI_SHARED #ifdef OBJECTS_REJ -// Enable required ucodes. + // Enable required ucodes. #define F3DEX2_REJ_GBI #define F3DLX2_REJ_GBI #endif // OBJECTS_REJ /***************** - * config_debug + * config_debug.h */ #ifdef PUPPYPRINT_DEBUG #undef PUPPYPRINT #define PUPPYPRINT -#endif +#endif // PUPPYPRINT_DEBUG #ifdef COMPLETE_SAVE_FILE #undef UNLOCK_ALL @@ -83,29 +83,29 @@ /***************** - * config_camera + * config_camera.h */ #ifdef FORCED_CAMERA_MODE #undef USE_COURSE_DEFAULT_MODE - #define USE_COURSE_DEFAULT_MODE // Forced camera mode overwrites the default mode -#endif + #define USE_COURSE_DEFAULT_MODE // Forced camera mode overwrites the default mode. +#endif // FORCED_CAMERA_MODE #ifndef WATER_SURFACE_CAMERA_MODE #define WATER_SURFACE_CAMERA_MODE CAMERA_MODE_WATER_SURFACE -#endif +#endif // !WATER_SURFACE_CAMERA_MODE #ifndef DEEP_WATER_CAMERA_MODE #define DEEP_WATER_CAMERA_MODE CAMERA_MODE_BEHIND_MARIO -#endif +#endif // !DEEP_WATER_CAMERA_MODE #ifndef FLYING_CAMERA_MODE #define FLYING_CAMERA_MODE CAMERA_MODE_BEHIND_MARIO -#endif +#endif // !FLYING_CAMERA_MODE /***************** - * config_game + * config_game.h */ #ifdef DISABLE_LIVES @@ -114,11 +114,11 @@ #ifndef START_LEVEL #define START_LEVEL LEVEL_CASTLE_GROUNDS -#endif +#endif // !START_LEVEL /***************** - * config_goddard + * config_goddard.h */ #ifndef KEEP_MARIO_HEAD @@ -128,8 +128,9 @@ #define DISABLE_DEMO #endif // !KEEP_MARIO_HEAD + /***************** - * config_menu + * config_menu.h */ #ifdef DISABLE_EXIT_COURSE @@ -141,10 +142,10 @@ /***************** - * config_objects + * config_objects.h */ -// Enable floombas if the intro floombas are enabled +// Enable floombas if the intro floombas are enabled. #ifdef INTRO_FLOOMBAS #undef FLOOMBAS #define FLOOMBAS @@ -152,7 +153,7 @@ /***************** - * config_rom + * config_rom.h */ #ifndef TARGET_N64 diff --git a/include/config/config_world.h b/include/config/config_world.h index b7abad3c..173a75da 100644 --- a/include/config/config_world.h +++ b/include/config/config_world.h @@ -7,33 +7,33 @@ * World scale value. This allows you to scale down geometry by the given amount, which allows for larger levels * without the distortion you would otherwise get. Larger world scale comes at a cost of precision, which * can increase Z-fighting. Values above 4 should not be necessary. - * - * Uncomment this out to specifically set it, otherwise world scale will be based off of your extended bounds mode + * + * Uncomment this out to specifically set it, otherwise world scale will be based off of your extended bounds mode. */ // #define WORLD_SCALE 1 -/* - 0: Regular bounds - Same as vanilla sm64, boundaries are (-8192 to 8191) - 16x16 collision cells. - 1: 2x extended bounds - level boundaries are twice as big (-16384 to 16383) - Collision calculations remain as fast as vanilla, at the cost of using more RAM. - 32x32 collision cells. - 2: Regular bounds (performance) - Same boundaries as vanilla (-8192 to 8191), but with twice the amount of collision cells - Trades more RAM usage for faster collision calculations. - 32x32 collision cells. - 3: 4x extended bounds - level boundaries are 4 times as big (-32768 to 32767) - Collision calculations remain as fast as vanilla, at the cost of using far more RAM (16 times vanilla). - 64x64 collision cells. - - If you see "SURFACE POOL FULL" or "SURFACE NODE POOL FULL" in game, you should increase - SURFACE_POOL_SIZE or SURFACE_NODE_POOL_SIZE, respectively, or reduce the amount of - collision surfaces in your level. -*/ +/** + * 0: Regular bounds + * Same as vanilla sm64, boundaries are (-8192 to 8191) + * 16x16 collision cells. + * 1: 2x extended bounds + * level boundaries are twice as big (-16384 to 16383) + * Collision calculations remain as fast as vanilla, at the cost of using more RAM. + * 32x32 collision cells. + * 2: Regular bounds (performance) + * Same boundaries as vanilla (-8192 to 8191), but with twice the amount of collision cells + * Trades more RAM usage for faster collision calculations. + * 32x32 collision cells. + * 3: 4x extended bounds + * level boundaries are 4 times as big (-32768 to 32767) + * Collision calculations remain as fast as vanilla, at the cost of using far more RAM (16 times vanilla). + * 64x64 collision cells. + * + * If you see "SURFACE POOL FULL" or "SURFACE NODE POOL FULL" in game, you should increase + * SURFACE_POOL_SIZE or SURFACE_NODE_POOL_SIZE, respectively, or reduce the amount of + * collision surfaces in your level. + */ // Set this to the extended bounds mode you want, then do "make clean". #define EXTENDED_BOUNDS_MODE 1 @@ -79,9 +79,9 @@ STATIC_ASSERT(((EXTENDED_BOUNDS_MODE >= 0) && (EXTENDED_BOUNDS_MODE <= 3)), "You // Multiply SURFACE_POOL_SIZE by the average amount of cells the surfaces intersect. #define SURFACE_NODE_POOL_SIZE (SURFACE_POOL_SIZE * 4) // Vanilla: 7000 -// Flags for error messages +// Flags for error messages. #define NOT_ENOUGH_ROOM_FOR_SURFACES (1 << 0) #define NOT_ENOUGH_ROOM_FOR_NODES (1 << 1) -// Use this to convert game units to cell coordinates -#define GET_CELL_COORD(p) ((((s32)(p) + LEVEL_BOUNDARY_MAX) / CELL_SIZE) & (NUM_CELLS - 1)); +// Use this to convert game units to cell coordinates. +#define GET_CELL_COORD(p) ((((s32)(p) + LEVEL_BOUNDARY_MAX) / CELL_SIZE) & (NUM_CELLS - 1)) diff --git a/src/game/mario_actions_airborne.c b/src/game/mario_actions_airborne.c index 433e6cf6..95051294 100644 --- a/src/game/mario_actions_airborne.c +++ b/src/game/mario_actions_airborne.c @@ -63,30 +63,14 @@ s32 check_fall_damage(struct MarioState *m, u32 hardFallAction) { #ifdef NO_FALL_DAMAGE return FALSE; #endif - f32 fallHeight; - f32 damageHeight; - fallHeight = m->peakHeight - m->pos[1]; + f32 fallHeight = m->peakHeight - m->pos[1]; -#pragma GCC diagnostic push -#if defined(__clang__) -#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare" -#elif defined(__GNUC__) -#pragma GCC diagnostic ignored "-Wtype-limits" -#endif - - //! Never true - if (m->actionState == ACT_GROUND_POUND) { - damageHeight = 600.0f; - } else { - damageHeight = 1150.0f; - } - -#pragma GCC diagnostic pop + f32 damageHeight = FALL_DAMAGE_HEIGHT_SMALL; if (m->action != ACT_TWIRLING && m->floor->type != SURFACE_BURNING) { if (m->vel[1] < -55.0f) { - if (fallHeight > 3000.0f) { + if (fallHeight > FALL_DAMAGE_HEIGHT_LARGE) { m->hurtCounter += (m->flags & MARIO_CAP_ON_HEAD) ? 16 : 24; #if ENABLE_RUMBLE queue_rumble_data(5, 80);