Fishsanity - Rando v3 (#3738)
* Update z_fishing documentation from decomp * undo sCameraAt/Eye rename * forgot to include these defines Heehee * adding enums, settings * adding more stuff back in * more work * we're literally typing words into computer * include unordered map maybe this fixes mac build idk * wahoo * hmm * add make sure disabled flag gets popped * poggers in the chat? * doing some refactoring * fixing build * documentation, moving fishsanity instance to rando * move FS back to context, fixing build, mod progress since FS is needed during rando generation & provides perpetual info abt. fishsanity in the seed, seems to make more sense if it lives on the context * moving some stuff around * it's starting to get real in here * ELIMINATE FISHSANITYMETA * IT WROKS * Update trackers, fix pond fish flagging * ZD fish shuffle initial checkpoint * ZD fish "working" aside from the crashing * wrapping up * fix for partial pond shuffle * remove misc. unrelated debugconsole modification * updating GI model * get build working * add a todo for this * removeoopsie * Rework hints a bit * update hint loc * Use visual indicator instead of despawning caught fish --------- Co-authored-by: jordanpg <jordanpg@users.noreply.github.com>
This commit is contained in:
@@ -76,6 +76,7 @@
|
||||
#include "objects/object_gi_dekupouch/object_gi_dekupouch.h"
|
||||
#include "objects/object_gi_rupy/object_gi_rupy.h"
|
||||
#include "objects/object_gi_sword_1/object_gi_sword_1.h"
|
||||
#include "objects/object_fish/object_fish.h"
|
||||
#include "objects/object_st/object_st.h"
|
||||
|
||||
#include "soh_assets.h"
|
||||
@@ -113,6 +114,7 @@ void GetItem_DrawJewelGoron(PlayState* play, s16 drawId);
|
||||
void GetItem_DrawJewelZora(PlayState* play, s16 drawId);
|
||||
void GetItem_DrawGenericMusicNote(PlayState* play, s16 drawId);
|
||||
void GetItem_DrawTriforcePiece(PlayState* play, s16 drawId);
|
||||
void GetItem_DrawFishingPole(PlayState* play, s16 drawId);
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ void (*drawFunc)(PlayState*, s16);
|
||||
@@ -388,7 +390,8 @@ DrawItemTableEntry sDrawItemTable[] = {
|
||||
{ GetItem_DrawGenericMusicNote, { gGiSongNoteDL } }, //Sun's song
|
||||
{ GetItem_DrawGenericMusicNote, { gGiSongNoteDL } }, //Song of time
|
||||
{ GetItem_DrawGenericMusicNote, { gGiSongNoteDL } }, //Song of storms
|
||||
{ GetItem_DrawTriforcePiece, { gTriforcePiece0DL } } // Triforce Piece
|
||||
{ GetItem_DrawTriforcePiece, { gTriforcePiece0DL } }, // Triforce Piece
|
||||
{ GetItem_DrawFishingPole, { gFishingPoleGiDL } }, // Fishing Pole
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1065,3 +1068,54 @@ void GetItem_DrawTriforcePiece(PlayState* play, s16 drawId) {
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
|
||||
void GetItem_DrawFishingPole(PlayState* play, s16 drawId) {
|
||||
Vec3f pos;
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
|
||||
// Draw rod
|
||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||
Matrix_Scale(0.2, 0.2, 0.2, MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||
G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingPoleGiDL);
|
||||
|
||||
// Draw lure
|
||||
Matrix_Push();
|
||||
Matrix_Scale(5.0f, 5.0f, 5.0f, MTXMODE_APPLY);
|
||||
pos.x = 0.0f;
|
||||
pos.y = -25.5f;
|
||||
pos.z = -4.0f;
|
||||
Matrix_Translate(pos.x, pos.y, pos.z, MTXMODE_APPLY);
|
||||
Matrix_RotateZ(M_PI / -2, MTXMODE_APPLY);
|
||||
Matrix_RotateY((M_PI / -2) - 0.2f, MTXMODE_APPLY);
|
||||
Matrix_Scale(0.006f, 0.006f, 0.006f, MTXMODE_APPLY);
|
||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||
G_MTX_NOPUSH | G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingLureFloatDL);
|
||||
|
||||
// Draw hooks
|
||||
Matrix_RotateY(0.2f, MTXMODE_APPLY);
|
||||
Matrix_Translate(0.0f, 0.0f, -300.0f, MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingLureHookDL);
|
||||
Matrix_RotateZ(M_PI / 2, MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingLureHookDL);
|
||||
|
||||
Matrix_Translate(0.0f, -2200.0f, 700.0f, MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingLureHookDL);
|
||||
Matrix_RotateZ(M_PI / 2, MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFishingLureHookDL);
|
||||
|
||||
Matrix_Pop();
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
@@ -2644,6 +2644,11 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) {
|
||||
return Return_Item_Entry(giEntry, RG_NONE);
|
||||
}
|
||||
|
||||
if (item == RG_FISHING_POLE) {
|
||||
Flags_SetRandomizerInf(RAND_INF_FISHING_POLE_FOUND);
|
||||
return Return_Item_Entry(giEntry, RG_NONE);
|
||||
}
|
||||
|
||||
if (item == RG_PROGRESSIVE_BOMBCHUS) {
|
||||
if (INV_CONTENT(ITEM_BOMBCHU) == ITEM_NONE) {
|
||||
INV_CONTENT(ITEM_BOMBCHU) = ITEM_BOMBCHU;
|
||||
|
||||
Reference in New Issue
Block a user