From 903cfc811ce87599af8f7a1a0e812a1fed80e5d4 Mon Sep 17 00:00:00 2001 From: KiritoDv Date: Sat, 4 Jan 2025 15:40:12 -0600 Subject: [PATCH] Added an option to restore the old boost gauge and fixed coin --- include/hud.h | 14 ++++++ port/assets/textures/hud/sBoostGaugeArrow0 | Bin 0 -> 2128 bytes port/assets/textures/hud/sBoostGaugeArrow1 | Bin 0 -> 2128 bytes port/assets/textures/hud/sBoostGaugeArrow2 | Bin 0 -> 2128 bytes port/assets/textures/hud/sBoostGaugeArrow3 | Bin 0 -> 2128 bytes port/assets/textures/hud/sBoostGaugeArrow4 | Bin 0 -> 2128 bytes port/assets/textures/hud/sBoostGaugeArrow5 | Bin 0 -> 2128 bytes port/assets/textures/hud/sBoostGaugeArrow6 | Bin 0 -> 2128 bytes port/assets/textures/hud/sBoostGaugeArrow7 | Bin 0 -> 2128 bytes port/assets/textures/hud/sBoostGaugeArrow8 | Bin 0 -> 2128 bytes src/port/mods/PortEnhancements.c | 50 +++++++++++++++++++++ src/port/ui/ImguiUI.cpp | 4 ++ 12 files changed, 68 insertions(+) create mode 100644 include/hud.h create mode 100644 port/assets/textures/hud/sBoostGaugeArrow0 create mode 100644 port/assets/textures/hud/sBoostGaugeArrow1 create mode 100644 port/assets/textures/hud/sBoostGaugeArrow2 create mode 100644 port/assets/textures/hud/sBoostGaugeArrow3 create mode 100644 port/assets/textures/hud/sBoostGaugeArrow4 create mode 100644 port/assets/textures/hud/sBoostGaugeArrow5 create mode 100644 port/assets/textures/hud/sBoostGaugeArrow6 create mode 100644 port/assets/textures/hud/sBoostGaugeArrow7 create mode 100644 port/assets/textures/hud/sBoostGaugeArrow8 diff --git a/include/hud.h b/include/hud.h new file mode 100644 index 00000000..924fce64 --- /dev/null +++ b/include/hud.h @@ -0,0 +1,14 @@ +#pragma once + +#include "gfx.h" +#include "sf64object.h" + +static const ALIGN_ASSET(2) char sBoostGaugeArrow0[] = "__OTR__assets/textures/hud/sBoostGaugeArrow0"; +static const ALIGN_ASSET(2) char sBoostGaugeArrow1[] = "__OTR__assets/textures/hud/sBoostGaugeArrow1"; +static const ALIGN_ASSET(2) char sBoostGaugeArrow2[] = "__OTR__assets/textures/hud/sBoostGaugeArrow2"; +static const ALIGN_ASSET(2) char sBoostGaugeArrow3[] = "__OTR__assets/textures/hud/sBoostGaugeArrow3"; +static const ALIGN_ASSET(2) char sBoostGaugeArrow4[] = "__OTR__assets/textures/hud/sBoostGaugeArrow4"; +static const ALIGN_ASSET(2) char sBoostGaugeArrow5[] = "__OTR__assets/textures/hud/sBoostGaugeArrow5"; +static const ALIGN_ASSET(2) char sBoostGaugeArrow6[] = "__OTR__assets/textures/hud/sBoostGaugeArrow6"; +static const ALIGN_ASSET(2) char sBoostGaugeArrow7[] = "__OTR__assets/textures/hud/sBoostGaugeArrow7"; +static const ALIGN_ASSET(2) char sBoostGaugeArrow8[] = "__OTR__assets/textures/hud/sBoostGaugeArrow8"; \ No newline at end of file diff --git a/port/assets/textures/hud/sBoostGaugeArrow0 b/port/assets/textures/hud/sBoostGaugeArrow0 new file mode 100644 index 0000000000000000000000000000000000000000..775d711ac92fb6127c13d39c1ef976551e12fbaa GIT binary patch literal 2128 zcmZQzU|@)F4ek#5|34u$_~k(+P-X_T zOrXRS5I2x-0!%-M#vfj|WI;M%7?&FS;xOIstM|U&x_0Z@t?%)x$CL$`@Z1ut7o>mf z*0q>w@QeKazxU(TwQI9mlGkQ~%)zf3Q}$RfNLSQ#MNY4&AQq`EfaocntH_xh4Q7)Z m23yyI^g&!ts_h{EfOI1;NQ6`j)4evERGp*hM?+v_ga81ytd=PN literal 0 HcmV?d00001 diff --git a/port/assets/textures/hud/sBoostGaugeArrow1 b/port/assets/textures/hud/sBoostGaugeArrow1 new file mode 100644 index 0000000000000000000000000000000000000000..42e7dab9d61bab6c1a1141a0707106ce0a889a6f GIT binary patch literal 2128 zcmZQzU|@)F4ex!ISQ^D-_q?rKLv$lAyB4@HBm`$R71_nsTE!70;CL;tP`oQFR Xa$n0-vA^O1N`mH3}4)P0B@7lH5Al@h*4S~@RKo0=`g#(u2 literal 0 HcmV?d00001 diff --git a/port/assets/textures/hud/sBoostGaugeArrow3 b/port/assets/textures/hud/sBoostGaugeArrow3 new file mode 100644 index 0000000000000000000000000000000000000000..ce3f64e65d995425813ce3fdeef3b7241144dfb9 GIT binary patch literal 2128 zcmZQzU|@)F4e;w_uAHD#m9`dt|gq>F;yHZ-uiy)S{THXCnN&VIpsNo zCZrl&el6JU>}W+!uc=@Y-lMC)&j;&S3(}t~31+XyuO3r&>w1tra^26sfE0S`x02|3 Wh-*OhLtFvjkCLMyFd71=Apih2#hFe3 literal 0 HcmV?d00001 diff --git a/port/assets/textures/hud/sBoostGaugeArrow4 b/port/assets/textures/hud/sBoostGaugeArrow4 new file mode 100644 index 0000000000000000000000000000000000000000..c796619996fb887306d6be74609a9394d36c872d GIT binary patch literal 2128 zcmZQzU|@)F4e8hk1SUOy!+_zwp7{D)r- ztet`o9NGFIz6X)`Lm8JWNGAm2Qh{Im``&xs&uzW-{dqNhb=YOMu0?|Hv8%x+x^+EB z|58m5xpgf*mDuFgz6a?mo~y_ibsfaoN}>zEde&w~!}YJnW(z(si2Hk%uFVFSg-<1R hxvlRZCV+I4?thS(V4a{)B+>66y`y+E1V%y#00379l=lDt literal 0 HcmV?d00001 diff --git a/port/assets/textures/hud/sBoostGaugeArrow5 b/port/assets/textures/hud/sBoostGaugeArrow5 new file mode 100644 index 0000000000000000000000000000000000000000..627b511be23073446c437b37ee22e836b66f3f21 GIT binary patch literal 2128 zcmZQzU|@)F4eey>$$DhwtnABj{dD{;qd)2L+tqipXk>0ApKLGgUGFG z@u|cnxAr|qUv{)2XVi5NYwLS#s&I>e^{hqGzaF<*>@pDd_bgqT4KfS68hoN#-$P6Q b=_cL(Ad|s5L7_;Z-$8mu@n{H)gb)A#Fq@VS literal 0 HcmV?d00001 diff --git a/port/assets/textures/hud/sBoostGaugeArrow6 b/port/assets/textures/hud/sBoostGaugeArrow6 new file mode 100644 index 0000000000000000000000000000000000000000..304c22813fdc12c6ee256cd8650567420c5e0555 GIT binary patch literal 2128 zcmZQzU|@)F4ezb*Y{w} z6oegR`XRc>4L!$Kjpf~w;g0R zrMk)053!q4-Q?+q*-g6cwb@(O?|uK=^7~$h8Kk9~t!rU$@5lGmq}#rAJxKpjO%S>F zBdPk=z6a^cj#lI>o(p1aT}zJZlO+{7qppMXuP04E0|Qvs+Lq+C*&r6Fx?%c3dO?_U V{ZJFugTj#<-J^O&Ltyxa007Z3luZBt literal 0 HcmV?d00001 diff --git a/port/assets/textures/hud/sBoostGaugeArrow8 b/port/assets/textures/hud/sBoostGaugeArrow8 new file mode 100644 index 0000000000000000000000000000000000000000..2db15458ebdd3c0fde1063f9171ea93db367b822 GIT binary patch literal 2128 zcmZQzU|@)F4eT zVp2mLq-*Qi>}W;K;<+I9xngo`kGihN8Fd|`f9reF^fNGk!ftJLOY+)mkbY8i!~74@ a3&N!92b-{dD+sP7NB5|n(GVE^Apihty_A&z literal 0 HcmV?d00001 diff --git a/src/port/mods/PortEnhancements.c b/src/port/mods/PortEnhancements.c index 530dbacb..e9c57d41 100644 --- a/src/port/mods/PortEnhancements.c +++ b/src/port/mods/PortEnhancements.c @@ -2,6 +2,7 @@ #include "global.h" #include "hit64.h" #include "mods.h" +#include "hud.h" #define INIT_EVENT_IDS #include "port/hooks/Events.h" @@ -224,6 +225,7 @@ void OnItemGoldRingUpdate(ObjectUpdateEvent* event){ case 0: if (item->collected) { item->state = 1; + item->timer_48 = 0; gGoldRingCount[0]++; if (gGoldRingCount[0] == 3) { Object_PlayerSfx(gPlayer[item->playerNum].sfxSource, NA_SE_SHIELD_UPGRADE, item->playerNum); @@ -252,6 +254,51 @@ void OnItemGoldRingUpdate(ObjectUpdateEvent* event){ } } +static const char* sBoostGaugeArrow[] = { + sBoostGaugeArrow0, + sBoostGaugeArrow1, + sBoostGaugeArrow2, + sBoostGaugeArrow3, + sBoostGaugeArrow4, + sBoostGaugeArrow5, + sBoostGaugeArrow6, + sBoostGaugeArrow7, + sBoostGaugeArrow8, +}; + +void OnBoostGaugeDraw(IEvent* event){ + bool restore = CVarGetInteger("gRestoreOldBoostGauge", 0) == 1; + + if(!restore){ + return; + } + + event->cancelled = true; + u8 step = MIN(8, (u8) ((gPlayer[0].boostMeter / 90.0f) * ARRAY_COUNT(sBoostGaugeArrow))); + f32 x = 70; + f32 y = 30; + + RCP_SetupDL(&gMasterDisp, SETUPDL_76_POINT); + gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); + Lib_TextureRect_CI8(&gMasterDisp, D_1012290, D_10126B0, 48, 22, OTRGetRectDimensionFromRightEdge(SCREEN_WIDTH - x), y, 1.0f, 1.0f); + Lib_TextureRect_CI8(&gMasterDisp, D_10126F0, D_1012750, 24, 4, OTRGetRectDimensionFromRightEdge(SCREEN_WIDTH - (x - 9)), y + 3, 1.0f, 1.0f); + Lib_TextureRect_RGBA16(&gMasterDisp, sBoostGaugeArrow[step], 32, 32, OTRGetRectDimensionFromRightEdge(SCREEN_WIDTH - (x - 6)), y - 1, 0.9f, 0.9f); +} + +void OnBombCounterDraw(IEvent* ev){ + bool restore = CVarGetInteger("gRestoreOldBoostGauge", 0) == 1; + if(!restore){ + return; + } + + ev->cancelled = true; + HUD_BombCounter_Draw(253.0f, 18.0f); +} + +void OnLivesCounterDraw(IEvent* ev){ + ev->cancelled = CVarGetInteger("gRestoreOldBoostGauge", 0) == 1; +} + void PortEnhancements_Init() { PortEnhancements_Register(); @@ -259,6 +306,9 @@ void PortEnhancements_Init() { REGISTER_LISTENER(DisplayPostUpdateEvent, OnDisplayUpdatePost, EVENT_PRIORITY_NORMAL); REGISTER_LISTENER(GamePostUpdateEvent, OnGameUpdatePost, EVENT_PRIORITY_NORMAL); REGISTER_LISTENER(PlayerPostUpdateEvent, OnPlayerUpdatePost, EVENT_PRIORITY_NORMAL); + REGISTER_LISTENER(DrawBoostGaugeHUDEvent, OnBoostGaugeDraw, EVENT_PRIORITY_NORMAL); + REGISTER_LISTENER(DrawLivesCounterHUDEvent, OnLivesCounterDraw, EVENT_PRIORITY_NORMAL); + REGISTER_LISTENER(DrawBombCounterHUDEvent, OnBombCounterDraw, EVENT_PRIORITY_NORMAL); REGISTER_LISTENER(ObjectUpdateEvent, OnItemGoldRingUpdate, EVENT_PRIORITY_NORMAL); REGISTER_LISTENER(ObjectDrawPostSetupEvent, OnItemGoldRingDraw, EVENT_PRIORITY_NORMAL); diff --git a/src/port/ui/ImguiUI.cpp b/src/port/ui/ImguiUI.cpp index 5cb3133e..49fe8e2f 100644 --- a/src/port/ui/ImguiUI.cpp +++ b/src/port/ui/ImguiUI.cpp @@ -473,6 +473,10 @@ void DrawEnhancementsMenu() { .tooltip = "Restores the beta coin that got replaced with the gold ring" }); + UIWidgets::CVarCheckbox("Beta: Restore old boost gauge", "gRestoreOldBoostGauge", { + .tooltip = "Restores the old boost gauge that was seen on some beta footage" + }); + ImGui::EndMenu(); }