diff options
| author | David Chavez <david@dcvz.io> | 2022-08-02 20:15:26 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-02 20:15:26 +0200 |
| commit | cec0bc6fcabf8d9d343cdc8ddcb19684c0b7b40a (patch) | |
| tree | 5e61f44fbb5f40e1c81c1d1f7d5d6f562aa6f0b1 | |
| parent | 61c68666d622bddf1c8964cb3160ce5d0198af74 (diff) | |
| parent | 53229f0905a74aee9f982d94d24c95d79f3177ab (diff) | |
Merge pull request #999 from dcvz/rachael-zhora
Rachael -> Zhora
| -rw-r--r-- | libultraship/libultraship/ImGuiImpl.cpp | 4 | ||||
| -rw-r--r-- | libultraship/libultraship/Lib/Fast3D/gfx_pc.cpp | 6 | ||||
| -rw-r--r-- | soh/include/z64player.h | 18 | ||||
| -rw-r--r-- | soh/soh.vcxproj.filters | 202 | ||||
| -rw-r--r-- | soh/soh/Enhancements/randomizer/3drando/hint_list.cpp | 2 | ||||
| -rw-r--r-- | soh/soh/Enhancements/randomizer/3drando/spoiler_log.cpp | 2 | ||||
| -rw-r--r-- | soh/soh/OTRGlobals.cpp | 4 | ||||
| -rw-r--r-- | soh/soh/OTRGlobals.h | 1 | ||||
| -rw-r--r-- | soh/src/code/z_play.c | 7 | ||||
| -rw-r--r-- | soh/src/overlays/actors/ovl_En_Skj/z_en_skj.c | 2 | ||||
| -rw-r--r-- | soh/src/overlays/actors/ovl_En_Xc/z_en_xc.c | 6 | ||||
| -rw-r--r-- | soh/src/overlays/actors/ovl_player_actor/z_player.c | 28 |
12 files changed, 178 insertions, 104 deletions
diff --git a/libultraship/libultraship/ImGuiImpl.cpp b/libultraship/libultraship/ImGuiImpl.cpp index c3dc8e23f..ef1aec431 100644 --- a/libultraship/libultraship/ImGuiImpl.cpp +++ b/libultraship/libultraship/ImGuiImpl.cpp @@ -897,10 +897,12 @@ namespace SohImGui { if (ImGui::BeginMenu("Graphics")) { +#ifndef __APPLE__ EnhancementSliderFloat("Internal Resolution: %d %%", "##IMul", "gInternalResolution", 0.5f, 2.0f, "", 1.0f, true); Tooltip("Multiplies your output resolution by the value inputted, as a more intensive but effective form of anti-aliasing"); gfx_current_dimensions.internal_mul = CVar_GetFloat("gInternalResolution", 1); - EnhancementSliderInt("MSAA: %d", "##IMSAA", "gMSAAValue", 1, 8, ""); +#endif + EnhancementSliderInt("MSAA: %d", "##IMSAA", "gMSAAValue", 1, 8, "", 1, true); Tooltip("Activates multi-sample anti-aliasing when above 1x up to 8x for 8 samples for every pixel"); gfx_msaa_level = CVar_GetS32("gMSAAValue", 1); diff --git a/libultraship/libultraship/Lib/Fast3D/gfx_pc.cpp b/libultraship/libultraship/Lib/Fast3D/gfx_pc.cpp index dd5f9bf95..10ba45ec5 100644 --- a/libultraship/libultraship/Lib/Fast3D/gfx_pc.cpp +++ b/libultraship/libultraship/Lib/Fast3D/gfx_pc.cpp @@ -2651,7 +2651,11 @@ void gfx_init(struct GfxWindowManagerAPI *wapi, struct GfxRenderingAPI *rapi, co gfx_wapi->init(game_name, start_in_fullscreen, width, height); gfx_rapi->init(); gfx_rapi->update_framebuffer_parameters(0, width, height, 1, false, true, true, true); +#ifdef __APPLE__ + gfx_current_dimensions.internal_mul = 1; +#else gfx_current_dimensions.internal_mul = CVar_GetFloat("gInternalResolution", 1); +#endif gfx_msaa_level = CVar_GetS32("gMSAAValue", 1); gfx_current_dimensions.width = width; gfx_current_dimensions.height = height; @@ -2870,4 +2874,4 @@ uint16_t gfx_get_pixel_depth(float x, float y) { get_pixel_depth_pending.clear(); return get_pixel_depth_cached.find(make_pair(x, y))->second; -}
\ No newline at end of file +} diff --git a/soh/include/z64player.h b/soh/include/z64player.h index 954c36c14..3c2c7c3cd 100644 --- a/soh/include/z64player.h +++ b/soh/include/z64player.h @@ -356,7 +356,20 @@ typedef struct { /* 0x00 */ s32 active; /* 0x04 */ Vec3f tip; /* 0x10 */ Vec3f base; -} WeaponInfo; // size = 0x1C +} WeaponInfo; // size = 0x1C\ + +typedef enum { + FLAG_NONE, + FLAG_SCENE_SWITCH, + FLAG_SCENE_TREASURE, + FLAG_SCENE_CLEAR, + FLAG_SCENE_COLLECTIBLE, +} FlagType; + +typedef struct { + /* 0x00 */ s32 flagID; // which flag to set when Player_SetPendingFlag is called + /* 0x04 */ FlagType flagType; // type of flag to set when Player_SetPendingFlag is called +} PendingFlag; // size = 0x06 #define PLAYER_STATE1_0 (1 << 0) #define PLAYER_STATE1_1 (1 << 1) @@ -612,6 +625,7 @@ typedef struct Player { /* 0x0A86 */ s8 unk_A86; /* 0x0A87 */ u8 unk_A87; /* 0x0A88 */ Vec3f unk_A88; // previous body part 0 position -} Player; // size = 0xA94 + /* 0x0A94 */ PendingFlag pendingFlag; +} Player; // size = 0xAA0 #endif diff --git a/soh/soh.vcxproj.filters b/soh/soh.vcxproj.filters index f0c05dee8..2a29a969d 100644 --- a/soh/soh.vcxproj.filters +++ b/soh/soh.vcxproj.filters @@ -82,6 +82,24 @@ <Filter Include="Source Files\soh\Enhancements\debugger"> <UniqueIdentifier>{04fc1c52-49ff-48e2-ae23-2c00867374f8}</UniqueIdentifier> </Filter> + <Filter Include="Source Files\soh\Enhancements\randomizer"> + <UniqueIdentifier>{fd63976d-64b1-45ee-b3ab-530c636391c3}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\soh\Enhancements\randomizer\3drando"> + <UniqueIdentifier>{ff94f63c-a792-49af-869b-42557318a32b}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\soh\Enhancements\randomizer\3drando\hint_list"> + <UniqueIdentifier>{1ba82a8d-b7d9-4f79-b80b-389322e189bc}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\soh\Enhancements\randomizer\3drando\location_access"> + <UniqueIdentifier>{9e20d69b-6a26-48ef-9aae-09c149b2c459}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\soh\Enhancements\randomizer"> + <UniqueIdentifier>{d7b4c12f-3876-40ec-a8ec-db435513156c}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\soh\Enhancements\randomizer\3drando"> + <UniqueIdentifier>{38ae4e39-fade-4f81-bfdb-af83bf641df0}</UniqueIdentifier> + </Filter> </ItemGroup> <ItemGroup> <ClCompile Include="src\boot\assert.c"> @@ -2206,172 +2224,172 @@ <Filter>Header Files\include</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\hint_list\hint_list_exclude_dungeon.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\hint_list</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\hint_list\hint_list_exclude_overworld.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\hint_list</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\hint_list\hint_list_item.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\hint_list</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_bottom_of_the_well.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_castle_town.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_death_mountain.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_deku_tree.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_dodongos_cavern.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_fire_temple.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_forest_temple.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_ganons_castle.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_gerudo_training_grounds.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_gerudo_valley.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_hyrule_field.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_ice_cavern.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_jabujabus_belly.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_kakariko.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_lost_woods.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_shadow_temple.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_spirit_temple.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_water_temple.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access\locacc_zoras_domain.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando\location_access</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\cosmetics.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\custom_messages.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\debug.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\dungeon.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\entrance.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\fill.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\hints.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\hint_list.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\item.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\item_list.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\item_location.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\item_pool.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\location_access.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\logic.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\menu.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\music.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\patch.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\playthrough.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\preset.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\random.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\rando_main.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\settings.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\setting_descriptions.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\shops.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\sound_effects.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\spoiler_log.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\starting_inventory.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\tinyxml2.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\trial.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\3drando\utils.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer\3drando</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\randomizer.cpp"> - <Filter>Source Files</Filter> + <Filter>Source Files\soh\Enhancements\randomizer</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\randomizer.h"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\gfx.c"> <Filter>Header Files\soh\Enhancements</Filter> </ClCompile> <ClCompile Include="soh\Enhancements\randomizer\randomizer_item_tracker.cpp"> - <Filter>Source Files\src</Filter> + <Filter>Source Files\soh\Enhancements\randomizer</Filter> </ClCompile> </ItemGroup> <ItemGroup> @@ -3945,118 +3963,118 @@ <Filter>Header Files\include</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\category.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\cosmetics.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\custom_messages.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\debug.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\dungeon.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\entrance.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\fill.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\hints.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\hint_list.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\item.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\item_list.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\item_location.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\item_pool.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\keys.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\location_access.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\logic.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\menu.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\music.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\patch.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\playthrough.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\pool_functions.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\preset.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\random.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\randomizer.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\rando_main.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\settings.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\setting_descriptions.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\shops.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\sound_effects.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\spoiler_log.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\starting_inventory.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\text.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\tinyxml2.h"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\trial.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\3drando\utils.hpp"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer\3drando</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\randomizerTypes.h"> - <Filter>Header Files</Filter> + <Filter>Header Files\soh\Enhancements\randomizer</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\gfx.h"> <Filter>Header Files\soh\Enhancements</Filter> </ClInclude> <ClInclude Include="soh\Enhancements\randomizer\randomizer_item_tracker.h"> - <Filter>Source Files\src</Filter> + <Filter>Header Files\soh\Enhancements\randomizer</Filter> </ClInclude> </ItemGroup> <ItemGroup> diff --git a/soh/soh/Enhancements/randomizer/3drando/hint_list.cpp b/soh/soh/Enhancements/randomizer/3drando/hint_list.cpp index 19329675a..11fd2b441 100644 --- a/soh/soh/Enhancements/randomizer/3drando/hint_list.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/hint_list.cpp @@ -2102,7 +2102,7 @@ void HintTable_Init() { hintTable[GANON_LINE07] = HintText::GanonLine({ //obscure text - Text{"What about Zelda makes you think she'd be a better ruler than I?^I saved Lon Lon Ranch,&fed the hungry,&and my castle floats.", + Text{"What about Zelda makes you think&she'd be a better ruler than I?^I saved Lon Lon Ranch,&fed the hungry,&and my castle floats.", /*french*/"Zelda ne sera jamais un meilleur monarque que moi!^J'ai un château volant, mes sujets sont des belles amazones... et mes Moblins sont clairement plus puissants que jamais!", /*spanish*/"¿Qué te hace pensar que Zelda gobierna mejor que yo?^Yo he salvado el Rancho Lon Lon,&he alimentado a los hambrientos&y hasta hago que mi castillo flote."}, }); diff --git a/soh/soh/Enhancements/randomizer/3drando/spoiler_log.cpp b/soh/soh/Enhancements/randomizer/3drando/spoiler_log.cpp index 142d2576f..8b829057f 100644 --- a/soh/soh/Enhancements/randomizer/3drando/spoiler_log.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/spoiler_log.cpp @@ -579,7 +579,7 @@ std::string AutoFormatHintTextString(std::string unformattedHintTextString) { bool needsAutomaicNewlines = true; if (textStr == "Erreur 0x69a504:&Traduction manquante^C'est de la faute à Purple Hato!&J'vous jure!" || textStr == "Mon très cher @:&Viens vite au château, je t'ai préparé&un délicieux gâteau...^À bientôt, Princesse Zelda" || - textStr == "What about Zelda makes you think she'd be a better ruler than I?^I saved Lon Lon Ranch,&fed the hungry,&and my castle floats." || + textStr == "What about Zelda makes you think&she'd be a better ruler than I?^I saved Lon Lon Ranch,&fed the hungry,&and my castle floats." || textStr == "Many tricks are up my sleeve,&to save yourself&you'd better leave!" || textStr == "I've learned this spell,&it's really neat,&I'll keep it later&for your treat!" || textStr == "Sale petit garnement,&tu fais erreur!&C'est maintenant que marque&ta dernière heure!" || diff --git a/soh/soh/OTRGlobals.cpp b/soh/soh/OTRGlobals.cpp index f611909b1..d1d9ebb73 100644 --- a/soh/soh/OTRGlobals.cpp +++ b/soh/soh/OTRGlobals.cpp @@ -1514,3 +1514,7 @@ extern "C" s32 Randomizer_GetRandomizedItemId(GetItemID ogId, s16 actorId, s16 a extern "C" s32 Randomizer_GetItemIdFromKnownCheck(RandomizerCheck randomizerCheck, GetItemID ogId) { return OTRGlobals::Instance->gRandomizer->GetRandomizedItemIdFromKnownCheck(randomizerCheck, ogId); } + +extern "C" bool Randomizer_ItemIsIceTrap(RandomizerCheck randomizerCheck, GetItemID ogId) { + return gSaveContext.n64ddFlag && Randomizer_GetItemIdFromKnownCheck(randomizerCheck, ogId) == GI_ICE_TRAP; +} diff --git a/soh/soh/OTRGlobals.h b/soh/soh/OTRGlobals.h index d03c913e1..d838b94df 100644 --- a/soh/soh/OTRGlobals.h +++ b/soh/soh/OTRGlobals.h @@ -100,6 +100,7 @@ s16 Randomizer_GetItemModelFromId(s16 itemId); s32 Randomizer_GetItemIDFromGetItemID(s32 getItemId); s32 Randomizer_GetRandomizedItemId(GetItemID ogId, s16 actorId, s16 actorParams, s16 sceneNum); s32 Randomizer_GetItemIdFromKnownCheck(RandomizerCheck randomizerCheck, GetItemID ogId); +bool Randomizer_ItemIsIceTrap(RandomizerCheck randomizerCheck, GetItemID ogId); #endif #endif diff --git a/soh/src/code/z_play.c b/soh/src/code/z_play.c index 763ed1ee8..d5bcb5beb 100644 --- a/soh/src/code/z_play.c +++ b/soh/src/code/z_play.c @@ -238,10 +238,11 @@ void GivePlayerRandoRewardZeldaLightArrowsGift(GlobalContext* globalCtx, Randomi if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) && CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) && LINK_IS_ADULT && (gEntranceTable[((void)0, gSaveContext.entranceIndex)].scene == SCENE_TOKINOMA) && !Flags_GetTreasure(globalCtx, 0x1E) && player != NULL && !Player_InBlockingCsMode(globalCtx, player) && - globalCtx->sceneLoadFlag == 0 && player->getItemId == GI_NONE) { + globalCtx->sceneLoadFlag == 0) { GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, GI_ARROW_LIGHT); GiveItemWithoutActor(globalCtx, getItemId); - Flags_SetTreasure(globalCtx, 0x1E); + player->pendingFlag.flagID = 0x1E; + player->pendingFlag.flagType = FLAG_SCENE_TREASURE; } } @@ -1409,7 +1410,7 @@ void Gameplay_Draw(GlobalContext* globalCtx) { OVERLAY_DISP = sp70; globalCtx->unk_121C7 = 2; SREG(33) |= 1; - } else { + } else if (R_PAUSE_MENU_MODE != 3) { Gameplay_Draw_DrawOverlayElements: if ((HREG(80) != 10) || (HREG(89) != 0)) { Gameplay_DrawOverlayElements(globalCtx); diff --git a/soh/src/overlays/actors/ovl_En_Skj/z_en_skj.c b/soh/src/overlays/actors/ovl_En_Skj/z_en_skj.c index 859afb406..2d42c191e 100644 --- a/soh/src/overlays/actors/ovl_En_Skj/z_en_skj.c +++ b/soh/src/overlays/actors/ovl_En_Skj/z_en_skj.c @@ -1059,7 +1059,7 @@ void EnSkj_SetupPostSariasSong(EnSkj* this) { } void EnSkj_ChangeModeAfterSong(EnSkj* this, GlobalContext* globalCtx) { - if ((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) { + if (((Message_GetState(&globalCtx->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(globalCtx)) || Randomizer_ItemIsIceTrap(RC_LW_SKULL_KID, GI_HEART_PIECE)) { gSaveContext.itemGetInf[1] |= 0x40; EnSkj_SetNaviId(this); EnSkj_SetupWaitInRange(this); diff --git a/soh/src/overlays/actors/ovl_En_Xc/z_en_xc.c b/soh/src/overlays/actors/ovl_En_Xc/z_en_xc.c index 88ce05819..d9f96e177 100644 --- a/soh/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/soh/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -288,14 +288,16 @@ void func_80B3CA38(EnXc* this, GlobalContext* globalCtx) { } void GivePlayerRandoRewardSheikSong(EnXc* sheik, GlobalContext* globalCtx, RandomizerCheck check, int sheikType, GetItemID ogSongId) { - if (sheik->actor.parent != NULL && sheik->actor.parent->id == GET_PLAYER(globalCtx)->actor.id && + Player* player = GET_PLAYER(globalCtx); + if (sheik->actor.parent != NULL && sheik->actor.parent->id == player->actor.id && !(gSaveContext.eventChkInf[5] & sheikType)) { gSaveContext.eventChkInf[5] |= sheikType; } else if (!(gSaveContext.eventChkInf[5] & sheikType)) { GetItemID getItemId = Randomizer_GetItemIdFromKnownCheck(check, ogSongId); if (check == RC_SHEIK_AT_TEMPLE && !Flags_GetTreasure(globalCtx, 0x1F)) { if (func_8002F434(&sheik->actor, globalCtx, getItemId, 10000.0f, 100.0f)) { - Flags_SetTreasure(globalCtx, 0x1F); + player->pendingFlag.flagID = 0x1F; + player->pendingFlag.flagType = FLAG_SCENE_TREASURE; } } else if (check != RC_SHEIK_AT_TEMPLE) { func_8002F434(&sheik->actor, globalCtx, getItemId, 10000.0f, 100.0f); diff --git a/soh/src/overlays/actors/ovl_player_actor/z_player.c b/soh/src/overlays/actors/ovl_player_actor/z_player.c index 844e301a9..aa875a373 100644 --- a/soh/src/overlays/actors/ovl_player_actor/z_player.c +++ b/soh/src/overlays/actors/ovl_player_actor/z_player.c @@ -167,6 +167,7 @@ void func_8083CA20(GlobalContext* globalCtx, Player* this); void func_8083CA54(GlobalContext* globalCtx, Player* this); void func_8083CA9C(GlobalContext* globalCtx, Player* this); s32 func_8083E0FC(Player* this, GlobalContext* globalCtx); +void Player_SetPendingFlag(Player* this, GlobalContext* globalCtx); s32 func_8083E5A8(Player* this, GlobalContext* globalCtx); s32 func_8083EB44(Player* this, GlobalContext* globalCtx); s32 func_8083F7BC(Player* this, GlobalContext* globalCtx); @@ -6236,6 +6237,30 @@ void func_8083E4C4(GlobalContext* globalCtx, Player* this, GetItemEntry* giEntry func_80078884((this->getItemId < 0) ? NA_SE_SY_GET_BOXITEM : NA_SE_SY_GET_ITEM); } +// Sets a flag according to which type of flag is specified in player->pendingFlag.flagType +// and which flag is specified in player->pendingFlag.flagID. +void Player_SetPendingFlag(Player* this, GlobalContext* globalCtx) { + switch (this->pendingFlag.flagType) { + case FLAG_SCENE_CLEAR: + Flags_SetClear(globalCtx, this->pendingFlag.flagID); + break; + case FLAG_SCENE_COLLECTIBLE: + Flags_SetCollectible(globalCtx, this->pendingFlag.flagID); + break; + case FLAG_SCENE_SWITCH: + Flags_SetSwitch(globalCtx, this->pendingFlag.flagID); + break; + case FLAG_SCENE_TREASURE: + Flags_SetTreasure(globalCtx, this->pendingFlag.flagID); + break; + case FLAG_NONE: + default: + break; + } + this->pendingFlag.flagType = FLAG_NONE; + this->pendingFlag.flagID = 0; +} + s32 func_8083E5A8(Player* this, GlobalContext* globalCtx) { Actor* interactedActor; @@ -6259,6 +6284,7 @@ s32 func_8083E5A8(Player* this, GlobalContext* globalCtx) { this->stateFlags1 &= ~(PLAYER_STATE1_10 | PLAYER_STATE1_11); this->actor.colChkInfo.damage = 0; func_80837C0C(globalCtx, this, 3, 0.0f, 0.0f, 0, 20); + Player_SetPendingFlag(this, globalCtx); return; } @@ -12691,6 +12717,8 @@ s32 func_8084DFF4(GlobalContext* globalCtx, Player* this) { Message_StartTextbox(globalCtx, giEntry->textId, &this->actor); Item_Give(globalCtx, giEntry->itemId); + + Player_SetPendingFlag(this, globalCtx); if (((this->getItemId >= GI_RUPEE_GREEN) && (this->getItemId <= GI_RUPEE_RED)) || ((this->getItemId >= GI_RUPEE_PURPLE) && (this->getItemId <= GI_RUPEE_GOLD)) || |
