Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Testing out item replacement #45

Merged
merged 54 commits into from
Jun 3, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
bc6def7
ComboBox Simplification
Baoulettes May 19, 2022
d36b641
few things in comment needed fix
Baoulettes May 19, 2022
6229233
sizeof fix
Baoulettes May 19, 2022
bb44350
Remove comment and stuff useless
Baoulettes May 20, 2022
49e15d3
Add definition
Baoulettes May 20, 2022
c0cd3b5
Changing int type
Baoulettes May 20, 2022
2115111
fix int type, removing default value, should build
Baoulettes May 20, 2022
14ca2ab
Merge branch 'develop' into ComboBox-Simplification
Baoulettes May 29, 2022
b5fe8ef
oot3drando wip
MelonSpeedruns May 31, 2022
e807c2d
more oot3d rando work
MelonSpeedruns Jun 1, 2022
65d94e8
Merge remote-tracking branch 'melon/oot3d-rando' into 3d-rando
Jun 1, 2022
7330258
wip
Jun 1, 2022
7ee0564
still seeing the types error
Jun 1, 2022
73e9895
it's still looking for randomizer/main.hpp
Jun 1, 2022
0113dc7
fixed building errors
MelonSpeedruns Jun 1, 2022
2570607
rando generation working, but lots of incorrect check strings
MelonSpeedruns Jun 1, 2022
ccc2058
restored table
MelonSpeedruns Jun 1, 2022
f60df39
rooftop guy refactored + rando generation working
MelonSpeedruns Jun 1, 2022
2bd7914
refactor some actors
MelonSpeedruns Jun 2, 2022
0bfe2fe
fix win build crash (#425)
Baoulettes Jun 2, 2022
05340a9
Add fishing pole as sword in save editor
getbrainerror Jun 2, 2022
23946d5
Merge branch 'develop' into ComboBox-Simplification
Baoulettes Jun 2, 2022
c71a43f
Fixed Drag & Drop & killed owl & skipped some cutscenes
MelonSpeedruns Jun 2, 2022
b00c3dd
file hash icons work again
MelonSpeedruns Jun 2, 2022
37f46b6
re-added king dodongo crash
MelonSpeedruns Jun 2, 2022
df2b526
Generation doesn't freeze the game anymore + funny music
MelonSpeedruns Jun 2, 2022
e344f6d
re-added randomizer checkbox & fixed LH sun
MelonSpeedruns Jun 2, 2022
c3e3fed
commented out, still not building
Jun 2, 2022
902b842
FIX: Default Navi's colors have been altered recent merged PRs
PurpleHato Jun 2, 2022
46b8c76
commenting out more stuff
Jun 2, 2022
c99be16
enum name updates
Jun 2, 2022
6bb0c7b
enum name changes + no keys in z64save
Jun 2, 2022
4e11590
Merge pull request #40 from briaguya-ai/3d-rando-cleanup
briaguya-ai Jun 2, 2022
8534f25
more commenting out, still same error
Jun 2, 2022
29e0a4b
use single quotes in find command in makefile
Jun 3, 2022
3c06b3a
start moving stuff out of sohimguiimpl
Jun 3, 2022
39a76db
start implementing menu
Jun 3, 2022
746078d
move more stuff over to randomizer.cpp
Jun 3, 2022
5132340
move 3ds rando code, it's trying to build now
Jun 3, 2022
79e4200
it builds! also seed generation runs!
Jun 3, 2022
f07ad0c
move it to a thread
Jun 3, 2022
4d2b041
clean up, add spoiler file name to ui
Jun 3, 2022
8c39f7d
beans
Jun 3, 2022
52a8ab9
try updating vcxproj
Jun 3, 2022
c92524a
Merge pull request #387 from Baoulettes/ComboBox-Simplification
MelonSpeedruns Jun 3, 2022
3b1d82c
Merge pull request #437 from PurpleHato/FixNaviColor
MelonSpeedruns Jun 3, 2022
6c2b0c9
Merge pull request #42 from briaguya-ai/beans
briaguya-ai Jun 3, 2022
5639cc9
Merge branch 'develop' into testing-out-item-replacement
MelonSpeedruns Jun 3, 2022
4b55bab
Merge pull request #43 from MelonSpeedruns/testing-out-item-replacement
briaguya-ai Jun 3, 2022
3566aa9
Merge branch 'develop' into merge-in-develop
Jun 3, 2022
0836415
formatting
Jun 3, 2022
d434af9
don't need this anymore
Jun 3, 2022
fae3ec3
rando menu placement/naming
Jun 3, 2022
37130a6
Merge pull request #44 from briaguya-ai/merge-in-develop
briaguya-ai Jun 3, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion libultraship/libultraship/GameSettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ namespace Game {
void InitSettings() {
ModInternal::RegisterHook<ModInternal::AudioInit>(UpdateAudio);
ModInternal::RegisterHook<ModInternal::GfxInit>([] {
gfx_get_current_rendering_api()->set_texture_filter((FilteringMode) CVar_GetS32("gTextureFilter", THREE_POINT));
gfx_get_current_rendering_api()->set_texture_filter((FilteringMode) CVar_GetS32("gTextureFilter", FILTER_THREE_POINT));
SohImGui::console->opened = CVar_GetS32("gConsoleEnabled", 0);
UpdateAudio();
});
Expand Down
8 changes: 4 additions & 4 deletions libultraship/libultraship/Lib/Fast3D/gfx_direct3d11.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ static struct {
//uint32_t current_width, current_height;
uint32_t render_target_height;
int current_framebuffer;
FilteringMode current_filter_mode = NONE;
FilteringMode current_filter_mode = FILTER_NONE;

int8_t depth_test;
int8_t depth_mask;
Expand Down Expand Up @@ -410,7 +410,7 @@ static struct ShaderProgram *gfx_d3d11_create_and_load_new_shader(uint64_t shade
char buf[4096];
size_t len, num_floats;

gfx_direct3d_common_build_shader(buf, len, num_floats, cc_features, false, d3d.current_filter_mode == THREE_POINT);
gfx_direct3d_common_build_shader(buf, len, num_floats, cc_features, false, d3d.current_filter_mode == FILTER_THREE_POINT);

ComPtr<ID3DBlob> vs, ps;
ComPtr<ID3DBlob> error_blob;
Expand Down Expand Up @@ -577,7 +577,7 @@ static void gfx_d3d11_set_sampler_parameters(int tile, bool linear_filter, uint3
D3D11_SAMPLER_DESC sampler_desc;
ZeroMemory(&sampler_desc, sizeof(D3D11_SAMPLER_DESC));

sampler_desc.Filter = linear_filter && d3d.current_filter_mode == LINEAR ? D3D11_FILTER_MIN_MAG_MIP_LINEAR : D3D11_FILTER_MIN_MAG_MIP_POINT;
sampler_desc.Filter = linear_filter && d3d.current_filter_mode == FILTER_LINEAR ? D3D11_FILTER_MIN_MAG_MIP_LINEAR : D3D11_FILTER_MIN_MAG_MIP_POINT;

sampler_desc.AddressU = gfx_cm_to_d3d11(cms);
sampler_desc.AddressV = gfx_cm_to_d3d11(cmt);
Expand Down Expand Up @@ -682,7 +682,7 @@ static void gfx_d3d11_draw_triangles(float buf_vbo[], size_t buf_vbo_len, size_t
d3d.last_resource_views[i] = d3d.textures[d3d.current_texture_ids[i]].resource_view.Get();
d3d.context->PSSetShaderResources(i, 1, d3d.textures[d3d.current_texture_ids[i]].resource_view.GetAddressOf());

if (d3d.current_filter_mode == THREE_POINT) {
if (d3d.current_filter_mode == FILTER_THREE_POINT) {
d3d.per_draw_cb_data.textures[i].width = d3d.textures[d3d.current_texture_ids[i]].width;
d3d.per_draw_cb_data.textures[i].height = d3d.textures[d3d.current_texture_ids[i]].height;
d3d.per_draw_cb_data.textures[i].linear_filtering = d3d.textures[d3d.current_texture_ids[i]].linear_filtering;
Expand Down
4 changes: 3 additions & 1 deletion libultraship/libultraship/Lib/Fast3D/gfx_dxgi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@

#define DECLARE_GFX_DXGI_FUNCTIONS
#include "gfx_dxgi.h"
#include "../../GameSettings.h"

#define WINCLASS_NAME L"N64GAME"
#define GFX_API_NAME "DirectX"
Expand Down Expand Up @@ -271,8 +272,9 @@ static LRESULT CALLBACK gfx_dxgi_wnd_proc(HWND h_wnd, UINT message, WPARAM w_par
break;
case WM_DROPFILES:
DragQueryFileA((HDROP)w_param, 0, fileName, 256);
CVar_SetString("gDroppedFile", fileName);
CVar_SetString("gSpoilerLog", fileName);
CVar_SetS32("gDroppedNewSpoilerFile", 1);
Game::SaveSettings();
break;
case WM_SYSKEYDOWN:
if ((w_param == VK_RETURN) && ((l_param & 1 << 30) == 0)) {
Expand Down
6 changes: 3 additions & 3 deletions libultraship/libultraship/Lib/Fast3D/gfx_opengl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ static uint32_t frame_count;
static vector<Framebuffer> framebuffers;
static size_t current_framebuffer;
static float current_noise_scale;
static FilteringMode current_filter_mode = THREE_POINT;
static FilteringMode current_filter_mode = FILTER_THREE_POINT;

GLuint pixel_depth_rb, pixel_depth_fb;
size_t pixel_depth_rb_size;
Expand Down Expand Up @@ -315,7 +315,7 @@ static struct ShaderProgram* gfx_opengl_create_and_load_new_shader(uint64_t shad
append_line(fs_buf, &fs_len, "}");
}

if (current_filter_mode == THREE_POINT) {
if (current_filter_mode == FILTER_THREE_POINT) {
append_line(fs_buf, &fs_len, "#define TEX_OFFSET(off) texture2D(tex, texCoord - (off)/texSize)");
append_line(fs_buf, &fs_len, "vec4 filter3point(in sampler2D tex, in vec2 texCoord, in vec2 texSize) {");
append_line(fs_buf, &fs_len, " vec2 offset = fract(texCoord*texSize - vec2(0.5));");
Expand Down Expand Up @@ -577,7 +577,7 @@ static uint32_t gfx_cm_to_opengl(uint32_t val) {
}

static void gfx_opengl_set_sampler_parameters(int tile, bool linear_filter, uint32_t cms, uint32_t cmt) {
const GLint filter = linear_filter && current_filter_mode == LINEAR ? GL_LINEAR : GL_NEAREST;
const GLint filter = linear_filter && current_filter_mode == FILTER_LINEAR ? GL_LINEAR : GL_NEAREST;
glActiveTexture(GL_TEXTURE0 + tile);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter);
Expand Down
6 changes: 3 additions & 3 deletions libultraship/libultraship/Lib/Fast3D/gfx_rendering_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ struct GfxClipParameters {
};

enum FilteringMode {
THREE_POINT,
LINEAR,
NONE
FILTER_THREE_POINT,
FILTER_LINEAR,
FILTER_NONE
};

struct GfxRenderingAPI {
Expand Down
4 changes: 3 additions & 1 deletion libultraship/libultraship/Lib/Fast3D/gfx_sdl2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include <WTypesbase.h>
#endif
#include <time.h>
#include "../../GameSettings.h"

#define GFX_API_NAME "SDL2 - OpenGL"

Expand Down Expand Up @@ -252,8 +253,9 @@ static void gfx_sdl_handle_events(void) {
}
break;
case SDL_DROPFILE:
CVar_SetString("gDroppedFile", event.drop.file);
CVar_SetString("gSpoilerLog", event.drop.file);
CVar_SetS32("gDroppedNewSpoilerFile", 1);
Game::SaveSettings();
break;
case SDL_QUIT:
SDL_Quit(); // bandaid fix for linux window closing issue
Expand Down
81 changes: 45 additions & 36 deletions libultraship/libultraship/SohImGuiImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -90,13 +90,13 @@ namespace SohImGui {
ImVec4 navi_prop_i_col;
ImVec4 navi_prop_o_col;

//This is the list of possible CVars that has rainbow effect.
const char* RainbowColorCvarList[] = {
//This is the list of possible CVars that has rainbow effect.
"gTunic_Kokiri_","gTunic_Goron_","gTunic_Zora_",
"gCCHeartsPrim","gDDCCHeartsPrim",
"gCCABtnPrim","gCCBBtnPrim","gCCCBtnPrim","gCCStartBtnPrim",
"gCCMagicBorderPrim","gCCMagicPrim","gCCMagicUsePrim",
"gCCMinimapPrim","gCCRupeePrim","gCCKeysPrim"
"gTunic_Kokiri_","gTunic_Goron_","gTunic_Zora_",
"gCCHeartsPrim","gDDCCHeartsPrim",
"gCCABtnPrim","gCCBBtnPrim","gCCCBtnPrim","gCCStartBtnPrim",
"gCCMagicBorderPrim","gCCMagicPrim","gCCMagicUsePrim",
"gCCMinimapPrim","gCCRupeePrim","gCCKeysPrim"
};

const char* filters[3] = {
Expand Down Expand Up @@ -286,12 +286,12 @@ namespace SohImGui {
u8 b = (current_hue / 60.0f + (1 - i)) * 255;

switch (i) {
case 1: NewColor.x = 255; NewColor.y = b; NewColor.z = 0; break;
case 2: NewColor.x = a; NewColor.y = 255; NewColor.z = 0; break;
case 3: NewColor.x = 0; NewColor.y = 255; NewColor.z = b; break;
case 4: NewColor.x = 0; NewColor.y = a; NewColor.z = 255; break;
case 5: NewColor.x = b; NewColor.y = 0; NewColor.z = 255; break;
case 6: NewColor.x = 255; NewColor.y = 0; NewColor.z = a; break;
case 1: NewColor.x = 255; NewColor.y = b; NewColor.z = 0; break;
case 2: NewColor.x = a; NewColor.y = 255; NewColor.z = 0; break;
case 3: NewColor.x = 0; NewColor.y = 255; NewColor.z = b; break;
case 4: NewColor.x = 0; NewColor.y = a; NewColor.z = 255; break;
case 5: NewColor.x = b; NewColor.y = 0; NewColor.z = 255; break;
case 6: NewColor.x = 255; NewColor.y = 0; NewColor.z = a; break;
}

if (CVar_GetS32(Cvar_RBM.c_str(), 0) != 0) {
Expand Down Expand Up @@ -412,6 +412,10 @@ namespace SohImGui {
pads = cont_pad;
});
Game::InitSettings();

CVar_SetS32("gRandoGenerating", 0);
CVar_SetS32("gDroppedNewSpoilerFile", 0);
Game::SaveSettings();
}

void Update(EventImpl event) {
Expand All @@ -437,6 +441,28 @@ namespace SohImGui {
}
}


void EnhancementCombobox(const char* name, const char* ComboArray[], uint8_t FirstTimeValue = 0){
if (FirstTimeValue <= 0){
FirstTimeValue = 0;
}
uint8_t selected=CVar_GetS32(name, FirstTimeValue);
uint8_t DefaultValue=selected;
if (ImGui::BeginCombo("##name", ComboArray[DefaultValue])) {
uint8_t ComboxSize = sizeof(&ComboArray);
for (uint8_t i = 0; i <= ComboxSize; i++) {
if (strlen(ComboArray[i]) > 1) {
if (ImGui::Selectable(ComboArray[i], i==selected)) {
CVar_SetS32(name, i);
selected=i;
needs_save = true;
}
}
}
ImGui::EndCombo();
}
}

void EnhancementRadioButton(const char* text, const char* cvarName, int id) {
/*Usage :
EnhancementRadioButton("My Visible Name","gMyCVarName", MyID);
Expand Down Expand Up @@ -808,20 +834,9 @@ namespace SohImGui {

EXPERIMENTAL();
ImGui::Text("Texture Filter (Needs reload)");
EnhancementCombobox("gTextureFilter", filters);
GfxRenderingAPI* gapi = gfx_get_current_rendering_api();
if (ImGui::BeginCombo("##filters", filters[gapi->get_texture_filter()])) {
for (int fId = 0; fId <= FilteringMode::NONE; fId++) {
if (ImGui::Selectable(filters[fId], fId == gapi->get_texture_filter())) {
INFO("New Filter: %s", filters[fId]);
gapi->set_texture_filter((FilteringMode)fId);

CVar_SetS32("gTextureFilter", (int)fId);
needs_save = true;
}

}
ImGui::EndCombo();
}
gapi->set_texture_filter((FilteringMode)CVar_GetS32("gTextureFilter", 0));
overlay->DrawSettings();
ImGui::EndMenu();
}
Expand Down Expand Up @@ -1024,12 +1039,6 @@ namespace SohImGui {
ImGui::EndMenu();
}

if (ImGui::BeginMenu("Randomizer"))
{
EnhancementCheckbox("Enable Randomizer", "gRandomizer");
ImGui::EndMenu();
}

if (ImGui::BeginMenu("Developer Tools"))
{
EnhancementCheckbox("OoT Debug Mode", "gDebugEnabled");
Expand Down Expand Up @@ -1086,22 +1095,22 @@ namespace SohImGui {
Tooltip("Enable/Disable custom Navi's colors. \nIf disabled you will have original colors for Navi.\nColors are refreshed when Navi goes back in your pockets.");
EnhancementColor("Navi Idle Inner", "gNavi_Idle_Inner_", navi_idle_i_col, ImVec4(255,255,255,255), false);
Tooltip("Inner color for Navi (idle flying around)");
EnhancementColor("Navi Idle Outer", "gNavi_Idle_Outer_", navi_idle_o_col, ImVec4(115,230,255,255), false);
EnhancementColor("Navi Idle Outer", "gNavi_Idle_Outer_", navi_idle_o_col, ImVec4(0,0,255,255), false);
Tooltip("Outer color for Navi (idle flying around)");
ImGui::Separator();
EnhancementColor("Navi NPC Inner", "gNavi_NPC_Inner_", navi_npc_i_col, ImVec4(100,100,255,255), false);
EnhancementColor("Navi NPC Inner", "gNavi_NPC_Inner_", navi_npc_i_col, ImVec4(150,150,255,255), false);
Tooltip("Inner color for Navi (when Navi fly around NPCs)");
EnhancementColor("Navi NPC Outer", "gNavi_NPC_Outer_", navi_npc_o_col, ImVec4(90,90,255,255), false);
EnhancementColor("Navi NPC Outer", "gNavi_NPC_Outer_", navi_npc_o_col, ImVec4(150,150,255,255), false);
Tooltip("Outer color for Navi (when Navi fly around NPCs)");
ImGui::Separator();
EnhancementColor("Navi Enemy Inner", "gNavi_Enemy_Inner_", navi_enemy_i_col, ImVec4(255,255,0,255), false);
Tooltip("Inner color for Navi (when Navi fly around Enemies or Bosses)");
EnhancementColor("Navi Enemy Outer", "gNavi_Enemy_Outer_", navi_enemy_o_col, ImVec4(220,220,0,255), false);
EnhancementColor("Navi Enemy Outer", "gNavi_Enemy_Outer_", navi_enemy_o_col, ImVec4(220,155,0,255), false);
Tooltip("Outer color for Navi (when Navi fly around Enemies or Bosses)");
ImGui::Separator();
EnhancementColor("Navi Prop Inner", "gNavi_Prop_Inner_", navi_prop_i_col, ImVec4(0,255,0,255), false);
Tooltip("Inner color for Navi (when Navi fly around props (signs etc))");
EnhancementColor("Navi Prop Outer", "gNavi_Prop_Outer_", navi_prop_o_col, ImVec4(0,220,0,255), false);
EnhancementColor("Navi Prop Outer", "gNavi_Prop_Outer_", navi_prop_o_col, ImVec4(0,255,0,255), false);
Tooltip("Outer color for Navi (when Navi fly around props (signs etc))");
ImGui::EndTabItem();
}
Expand Down
2 changes: 1 addition & 1 deletion libultraship/libultraship/SohImGuiImpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ namespace SohImGui {
void EnhancementButton(const char* text, const char* cvarName);
void EnhancementSliderInt(const char* text, const char* id, const char* cvarName, int min, int max, const char* format);
void EnhancementSliderFloat(const char* text, const char* id, const char* cvarName, float min, float max, const char* format, float defaultValue, bool isPercentage);
void EnhancementCombobox(const char* name, const char* ComboArray[], uint8_t FirstTimeValue);
void EnhancementColor(const char* text, const char* cvarName, ImVec4 ColorRGBA, ImVec4 default_colors, bool allow_rainbow = true, bool has_alpha=false, bool TitleSameLine=false);

void DrawMainMenuAndCalculateGameSize(void);
Expand All @@ -87,5 +88,4 @@ namespace SohImGui {
void ResetColor(const char* cvarName, ImVec4* colors, ImVec4 defaultcolors, bool has_alpha);
ImTextureID GetTextureByID(int id);
ImTextureID GetTextureByName(const std::string& name);
// void LoadItemLocations(const char* spoilerFileName);
}
12 changes: 6 additions & 6 deletions soh/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -87,14 +87,14 @@ TEXTURE_FILES_OUT := $(foreach f,$(TEXTURE_FILES_PNG:.png=.inc.c),build/$f) \
$(foreach f,$(TEXTURE_FILES_JPG:.jpg=.jpg.inc.c),build/$f) \

CXX_FILES := \
$(shell find soh -type f -name *.cpp)
$(shell find soh -type f -name '*.cpp')

C_FILES := \
$(shell find soh -type f -name *.c) \
$(shell find src/boot -type f -name *.c) \
$(shell find src/buffers -type f -name *.c) \
$(shell find src/code -type f -name *.c) \
$(shell find src/overlays -type f -name *.c) \
$(shell find soh -type f -name '*.c') \
$(shell find src/boot -type f -name '*.c') \
$(shell find src/buffers -type f -name '*.c') \
$(shell find src/code -type f -name '*.c') \
$(shell find src/overlays -type f -name '*.c') \
src/libultra/gu/coss.c \
src/libultra/gu/guLookAt.c \
src/libultra/gu/guLookAtHilite.c \
Expand Down
1 change: 1 addition & 0 deletions soh/include/functions.h
Original file line number Diff line number Diff line change
Expand Up @@ -446,6 +446,7 @@ u32 Actor_TextboxIsClosing(Actor* actor, GlobalContext* globalCtx);
s8 func_8002F368(GlobalContext* globalCtx);
void Actor_GetScreenPos(GlobalContext* globalCtx, Actor* actor, s16* x, s16* y);
u32 Actor_HasParent(Actor* actor, GlobalContext* globalCtx);
s32 GiveItemWithoutActor(GlobalContext* globalCtx, s32 getItemId);
s32 func_8002F434(Actor* actor, GlobalContext* globalCtx, s32 getItemId, f32 xzRange, f32 yRange);
void func_8002F554(Actor* actor, GlobalContext* globalCtx, s32 getItemId);
void func_8002F580(Actor* actor, GlobalContext* globalCtx);
Expand Down
4 changes: 2 additions & 2 deletions soh/include/z64save.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ typedef struct {
typedef struct {
RandomizerCheck check;
RandomizerGet get;
} ItemLocation;
} ItemLocationRando;

typedef struct {
/* 0x0000 */ s32 entranceIndex; // start of `save` substruct, originally called "memory"
Expand Down Expand Up @@ -179,7 +179,7 @@ typedef struct {
/* 0x1420 */ s16 worldMapArea;
/* 0x1422 */ s16 sunsSongState; // controls the effects of suns song
/* 0x1424 */ s16 healthAccumulator;
ItemLocation itemLocations[700];
ItemLocationRando itemLocations[500];
Sprite seedIcons[5];
} SaveContext; // size = 0x1428

Expand Down
Loading