[Feature] Boss Rush (#2923)
* Ganon(dorf) cutscene skips * Remove leftover code * Load into chamber of sages * Fix loading into chamber without fast file select * Boss warps in chamber done * Change warps back to chamber * Initial proof of concept done * ganon(dorf) cutscene skips * Code cleanup & auto age equipment * Gameplay stats timer + tweaks * Scuffed timer * Better timer * remove arena props + fix arena exits * Fix blue warps * Attempt to fix build * Fix build again * And again.. * Try no. 9001 * Handle dying and saving * Child link face fire medallion * Fix build * Fix warps after reset/death * Disable doors and move player spawns in boss rooms * Fix boss rush logo rendering * Start of ingame options menu * File Select cleanup * Fix build * Render char text PoC * Move functions to be more generic * Fix build * Fix other builds * Initial text scaling/kerning * Special characters prep * All special characters work now * Attempt to fix build * Fix build question mark * Finish all kerning * Start of ingame options menu with vertical scrolling * Barebones functional options menu * More options menu progress * More visual elements for options menu * Options menu visual changes, implement all options, tons of cleanup * Cleanup and comments * Shorter enums * More options * Change default heart count * Finish French translations * Implement timer in cosmetics editor * Uncomment timer requirement * Variable name change * German translation & small UI tweaks * Animated up/down arrows in options UI * Better arrows in options UI * Cleaner timer + make it usable for general gameplay * More cleanup + ganon & ganondorf boss option * Implement never heal option * Slight up arrow in options UI tweak * Add BGS option * Reintroduce ganondorf cutscene skip * Change encoding to UTF on bossrush.cpp * Fix build hopefully * Fixed static variables leading to options not properly resetting * Fix BR completed timestamp * Change timer to render on top of everything * Offset final BR time by 0.1 second from boss timestamps * Add missing check for boss rush * Implement soh_assets.h * Revert merge mistake * Fix special characters with UTF-8 * Fix build * here's the fix you can merge from your phone * Fix quest select crash with oot.otr only * Use OoT's kerning * Fix HD textures on options menu * Fix special character kerning * "Heal every boss" fixes * Seperate headers + bunny hood option * Remove GetUnixTimestamp() externing * Clean up extern "C"'s * Address review comments * Fix build question mark * Remove accidental styling change --------- Co-authored-by: briaguya <briaguya@alice>
This commit is contained in:
@@ -889,6 +889,7 @@ void KaleidoSetup_Init(PlayState* play);
|
||||
void KaleidoSetup_Destroy(PlayState* play);
|
||||
void func_8006EE50(Font* font, u16 arg1, u16 arg2);
|
||||
void Font_LoadChar(Font* font, u8 character, u16 codePointIndex);
|
||||
void* Font_FetchCharTexture(u8 character);
|
||||
void Font_LoadMessageBoxIcon(Font* font, u16 icon);
|
||||
void Font_LoadOrderedFont(Font* font);
|
||||
s32 func_8006F0A0(s32 arg0);
|
||||
@@ -1054,6 +1055,7 @@ void func_800849EC(PlayState* play);
|
||||
void Interface_LoadItemIcon1(PlayState* play, u16 button);
|
||||
void Interface_LoadItemIcon2(PlayState* play, u16 button);
|
||||
void func_80084BF4(PlayState* play, u16 flag);
|
||||
uint16_t Interface_DrawTextLine(GraphicsContext* gfx, char text[], int16_t x, int16_t y, uint16_t colorR, uint16_t colorG, uint16_t colorB, uint16_t colorA, float textScale, uint8_t textShadow);
|
||||
u8 Item_Give(PlayState* play, u8 item);
|
||||
u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry);
|
||||
u8 Item_CheckObtainability(u8 item);
|
||||
@@ -2402,6 +2404,7 @@ u8 Message_GetState(MessageContext* msgCtx);
|
||||
void Message_Draw(PlayState* play);
|
||||
void Message_Update(PlayState* play);
|
||||
void Message_SetTables(void);
|
||||
f32 Message_GetCharacterWidth(unsigned char characterIndex);
|
||||
void GameOver_Init(PlayState* play);
|
||||
void GameOver_FadeInLights(PlayState* play);
|
||||
void GameOver_Update(PlayState* play);
|
||||
|
||||
@@ -1500,6 +1500,10 @@ typedef struct {
|
||||
f32 stickAnimTween;
|
||||
u8 arrowAnimState;
|
||||
u8 stickAnimState;
|
||||
uint8_t bossRushIndex;
|
||||
uint8_t bossRushOffset;
|
||||
int16_t bossRushUIAlpha;
|
||||
uint16_t bossRushArrowOffset;
|
||||
} FileChooseContext; // size = 0x1CAE0
|
||||
|
||||
typedef enum {
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "soh/Enhancements/randomizer/randomizer_inf.h"
|
||||
#include "soh/Enhancements/gameplaystats.h"
|
||||
#include "soh/Enhancements/randomizer/randomizer_entrance.h"
|
||||
#include "soh/Enhancements/boss-rush/BossRushTypes.h"
|
||||
|
||||
typedef enum {
|
||||
/* 0x0 */ MAGIC_STATE_IDLE, // Regular gameplay
|
||||
@@ -280,6 +281,9 @@ typedef struct {
|
||||
// #region SOH [General]
|
||||
// Upstream TODO: Move these to their own struct or name to more obviously specific to SoH
|
||||
/* */ uint32_t isMasterQuest;
|
||||
/* */ uint32_t isBossRush;
|
||||
/* */ uint32_t isBossRushPaused;
|
||||
/* */ uint8_t bossRushOptions[BOSSRUSH_OPTIONS_AMOUNT];
|
||||
/* */ u8 mqDungeonCount;
|
||||
/* */ u8 pendingIceTrapCount;
|
||||
/* */ SohStats sohStats;
|
||||
|
||||
Reference in New Issue
Block a user