diff --git a/soh/soh/Enhancements/Restorations/GraveHoleJumps.cpp b/soh/soh/Enhancements/Restorations/GraveHoleJumps.cpp index 525d30dc293..78b1a45ba8a 100644 --- a/soh/soh/Enhancements/Restorations/GraveHoleJumps.cpp +++ b/soh/soh/Enhancements/Restorations/GraveHoleJumps.cpp @@ -31,15 +31,16 @@ CollisionHeader* getGraveyardCollisionHeader() { */ SOH::Scene* scene = (SOH::Scene*)Ship::Context::GetInstance()->GetResourceManager()->LoadResource(GRAVEYARD_SCENE_FILEPATH).get(); - SOH::ISceneCommand* sceneCmd = nullptr; - for (int i = 0; i < scene->commands.size(); i++) { + SOH::SetCollisionHeader* sceneCmd = nullptr; + for (size_t i = 0; i < scene->commands.size(); i++) { auto cmd = scene->commands[i]; if (cmd->cmdId == SOH::SceneCommandID::SetCollisionHeader) { - sceneCmd = cmd.get(); + sceneCmd = static_cast(cmd.get()); break; } } - CollisionHeader* graveyardColHeader = (CollisionHeader*)((SOH::SetCollisionHeader*)sceneCmd)->GetRawPointer(); + CollisionHeader* graveyardColHeader = (CollisionHeader*)sceneCmd->GetRawPointer(); + uint32_t surfaceTypesCount = sceneCmd->collisionHeader->surfaceTypesCount; /* * Copy the surface type list and give ourselves some extra space to create another surface type for Link to fall @@ -47,7 +48,7 @@ CollisionHeader* getGraveyardCollisionHeader() { * are shifted somewhat between versions, so to be safe we just create an extra slot that is not in any version. */ static SurfaceType newSurfaceTypes[33]; - memcpy(newSurfaceTypes, graveyardColHeader->surfaceTypeList, sizeof(SurfaceType) * 33); + memcpy(newSurfaceTypes, graveyardColHeader->surfaceTypeList, sizeof(SurfaceType) * surfaceTypesCount); newSurfaceTypes[CUSTOM_SURFACE_TYPE].data[0] = 0x24000004; newSurfaceTypes[CUSTOM_SURFACE_TYPE].data[1] = 0xFC8; graveyardColHeader->surfaceTypeList = newSurfaceTypes; diff --git a/soh/soh/Enhancements/randomizer/option.h b/soh/soh/Enhancements/randomizer/option.h index f4e814088a4..00d65d36690 100644 --- a/soh/soh/Enhancements/randomizer/option.h +++ b/soh/soh/Enhancements/randomizer/option.h @@ -85,7 +85,7 @@ class OptionValue { explicit operator bool() const; private: - uint8_t mVal; + uint8_t mVal = 0; }; /** diff --git a/soh/soh/SohGui/UIWidgets.hpp b/soh/soh/SohGui/UIWidgets.hpp index a1f16a0592a..33b825ee826 100644 --- a/soh/soh/SohGui/UIWidgets.hpp +++ b/soh/soh/SohGui/UIWidgets.hpp @@ -827,7 +827,7 @@ bool Combobox(const char* label, T* value, const std::vector& combo ImGui::BeginDisabled(options.disabled); PushStyleCombobox(options.color); - const char* longest; + const char* longest = ""; size_t length = 0; for (auto& string : comboVector) { size_t len = string.length(); diff --git a/soh/src/code/audio_load.c b/soh/src/code/audio_load.c index f5d24756d79..96a39bc79e4 100644 --- a/soh/src/code/audio_load.c +++ b/soh/src/code/audio_load.c @@ -1361,7 +1361,7 @@ void AudioLoad_Init(void* heap, size_t heapSize) { char** fntList = ResourceMgr_ListFiles("audio/fonts*", &fntListSize); char** customFntList = ResourceMgr_ListFiles("custom/fonts/*", &customFntListSize); - gAudioContext.fontLoadStatus = malloc(customFntListSize + fntListSize); + gAudioContext.fontLoadStatus = calloc(customFntListSize + fntListSize, sizeof(u8)); fontMap = calloc(customFntListSize + fntListSize, sizeof(char*)); fontMapSize = customFntListSize + fntListSize; for (int i = 0; i < fntListSize; i++) { diff --git a/soh/src/code/sys_cfb.c b/soh/src/code/sys_cfb.c index 53e9306bc1f..8bfb3f669a9 100644 --- a/soh/src/code/sys_cfb.c +++ b/soh/src/code/sys_cfb.c @@ -36,8 +36,8 @@ void SysCfb_Init(s32 n64dd) { osSyncPrintf("システムが使用する最終アドレスは %08x です\n", sSysCfbEnd); // sSysCfbFbPtr[0] = sSysCfbEnd - (screenSize * 4); // sSysCfbFbPtr[1] = sSysCfbEnd - (screenSize * 2); - sSysCfbFbPtr[0] = malloc(screenSize * 4); - sSysCfbFbPtr[1] = malloc(screenSize * 4); + sSysCfbFbPtr[0] = (uintptr_t)calloc(screenSize, 4); + sSysCfbFbPtr[1] = (uintptr_t)calloc(screenSize, 4); // "Frame buffer addresses are %08x and %08x" // osSyncPrintf("フレームバッファのアドレスは %08x と %08x です\n", sSysCfbFbPtr[0], sSysCfbFbPtr[1]);