summaryrefslogtreecommitdiff
path: root/mm/2s2h/Rando/DrawItem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mm/2s2h/Rando/DrawItem.cpp')
-rw-r--r--mm/2s2h/Rando/DrawItem.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/mm/2s2h/Rando/DrawItem.cpp b/mm/2s2h/Rando/DrawItem.cpp
index 684e724a4..5fcfd13f5 100644
--- a/mm/2s2h/Rando/DrawItem.cpp
+++ b/mm/2s2h/Rando/DrawItem.cpp
@@ -2,6 +2,7 @@
#include "2s2h/Enhancements/FrameInterpolation/FrameInterpolation.h"
#include "2s2h/ShipInit.hpp"
#include "2s2h/Rando/DrawFuncs.h"
+#include "2s2h_assets.h"
extern "C" {
#include "variables.h"
@@ -296,6 +297,21 @@ void DrawSkulltulaToken(RandoItemId randoItemId, Actor* actor) {
CLOSE_DISPS(gPlayState->state.gfxCtx);
}
+void DrawAbilityItem(RandoItemId randoItemId, Actor* actor) {
+ Gfx* abilityItemModel[1] = {
+ (Gfx*)gGiFlippersDL,
+ };
+
+ OPEN_DISPS(gPlayState->state.gfxCtx);
+
+ Gfx_SetupDL25_Xlu(gPlayState->state.gfxCtx);
+
+ MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, gPlayState->state.gfxCtx);
+ gSPDisplayList(POLY_XLU_DISP++, (Gfx*)abilityItemModel[randoItemId - RI_ABILITY_SWIM]);
+
+ CLOSE_DISPS(gPlayState->state.gfxCtx);
+}
+
void DrawSparkles(RandoItemId randoItemId, Actor* actor) {
if (actor == NULL) {
return;
@@ -421,6 +437,9 @@ void Rando::DrawItem(RandoItemId randoItemId, Actor* actor) {
case RI_FROG_WHITE:
DrawMinifrog(randoItemId, actor);
break;
+ case RI_ABILITY_SWIM:
+ DrawAbilityItem(randoItemId, actor);
+ break;
case RI_NONE:
case RI_UNKNOWN:
break;
@@ -431,6 +450,7 @@ void Rando::DrawItem(RandoItemId randoItemId, Actor* actor) {
switch (randoItemId) {
case RI_NONE:
+ case RI_ABILITY_SWIM:
case RI_PROGRESSIVE_MAGIC:
case RI_SINGLE_MAGIC:
case RI_DOUBLE_MAGIC: