mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-12-01 13:52:19 -05:00
only green the greg bridge not everything else (#2962)
* only green the greg bridge not everything else * another option * do it the branch way * tabs spaces blarg * new dir * use latest lus main * latest lus main --------- Co-authored-by: briaguya <briaguya@alice>
This commit is contained in:
parent
ca9b1614af
commit
eba0b4c146
@ -0,0 +1,5 @@
|
|||||||
|
<DisplayList Version="0">
|
||||||
|
<Grayscale Enabled="false"/>
|
||||||
|
<EndDisplayList/>
|
||||||
|
</DisplayList>
|
||||||
|
|
@ -47,10 +47,15 @@ extern PlayState* gPlayState;
|
|||||||
#include "objects/object_gjyo_objects/object_gjyo_objects.h"
|
#include "objects/object_gjyo_objects/object_gjyo_objects.h"
|
||||||
#include "textures/nintendo_rogo_static/nintendo_rogo_static.h"
|
#include "textures/nintendo_rogo_static/nintendo_rogo_static.h"
|
||||||
void ResourceMgr_PatchGfxByName(const char* path, const char* patchName, int index, Gfx instruction);
|
void ResourceMgr_PatchGfxByName(const char* path, const char* patchName, int index, Gfx instruction);
|
||||||
|
void ResourceMgr_PatchGfxCopyCommandByName(const char* path, const char* patchName, int destinationIndex, int sourceIndex);
|
||||||
void ResourceMgr_UnpatchGfxByName(const char* path, const char* patchName);
|
void ResourceMgr_UnpatchGfxByName(const char* path, const char* patchName);
|
||||||
u8 Randomizer_GetSettingValue(RandomizerSettingKey randoSettingKey);
|
u8 Randomizer_GetSettingValue(RandomizerSettingKey randoSettingKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This is used for the greg bridge
|
||||||
|
#define dgEndGrayscaleAndEndDlistDL "__OTR__helpers/cosmetics/gEndGrayscaleAndEndDlistDL"
|
||||||
|
static const ALIGN_ASSET(2) char gEndGrayscaleAndEndDlistDL[] = dgEndGrayscaleAndEndDlistDL;
|
||||||
|
|
||||||
// Not to be confused with tabs, groups are 1:1 with the boxes shown in the UI, grouping them allows us to reset/randomize
|
// Not to be confused with tabs, groups are 1:1 with the boxes shown in the UI, grouping them allows us to reset/randomize
|
||||||
// every item in a group at once. If you are looking for tabs they are rendered manually in ImGui in `DrawCosmeticsEditor`
|
// every item in a group at once. If you are looking for tabs they are rendered manually in ImGui in `DrawCosmeticsEditor`
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@ -915,11 +920,13 @@ void ApplyOrResetCustomGfxPatches(bool manualChange) {
|
|||||||
|
|
||||||
// Greg Bridge
|
// Greg Bridge
|
||||||
if (Randomizer_GetSettingValue(RSK_RAINBOW_BRIDGE) == RO_BRIDGE_GREG) {
|
if (Randomizer_GetSettingValue(RSK_RAINBOW_BRIDGE) == RO_BRIDGE_GREG) {
|
||||||
ResourceMgr_PatchGfxByName(gRainbowBridgeDL, "RainbowBridge1", 2, gsSPGrayscale(true));
|
ResourceMgr_PatchGfxByName(gRainbowBridgeDL, "RainbowBridge_StartGrayscale", 2, gsSPGrayscale(true));
|
||||||
ResourceMgr_PatchGfxByName(gRainbowBridgeDL, "RainbowBridge2", 10, gsDPSetGrayscaleColor(color.r, color.g, color.b, color.a));
|
ResourceMgr_PatchGfxByName(gRainbowBridgeDL, "RainbowBridge_MakeGreen", 10, gsDPSetGrayscaleColor(color.r, color.g, color.b, color.a));
|
||||||
|
ResourceMgr_PatchGfxByName(gRainbowBridgeDL, "RainbowBridge_EndGrayscaleAndEndDlist", 79, gsSPBranchListOTRFilePath(gEndGrayscaleAndEndDlistDL));
|
||||||
} else {
|
} else {
|
||||||
ResourceMgr_UnpatchGfxByName(gRainbowBridgeDL, "RainbowBridge1");
|
ResourceMgr_UnpatchGfxByName(gRainbowBridgeDL, "RainbowBridge_StartGrayscale");
|
||||||
ResourceMgr_UnpatchGfxByName(gRainbowBridgeDL, "RainbowBridge2");
|
ResourceMgr_UnpatchGfxByName(gRainbowBridgeDL, "RainbowBridge_MakeGreen");
|
||||||
|
ResourceMgr_UnpatchGfxByName(gRainbowBridgeDL, "RainbowBridge_EndGrayscaleAndEndDlist");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static CosmeticOption& consumableBlueRupee = cosmeticOptions.at("Consumable_BlueRupee");
|
static CosmeticOption& consumableBlueRupee = cosmeticOptions.at("Consumable_BlueRupee");
|
||||||
|
@ -1273,6 +1273,23 @@ extern "C" void ResourceMgr_PatchGfxByName(const char* path, const char* patchNa
|
|||||||
*gfx = instruction;
|
*gfx = instruction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" void ResourceMgr_PatchGfxCopyCommandByName(const char* path, const char* patchName, int destinationIndex, int sourceIndex) {
|
||||||
|
auto res = std::static_pointer_cast<LUS::DisplayList>(
|
||||||
|
LUS::Context::GetInstance()->GetResourceManager()->LoadResource(path));
|
||||||
|
|
||||||
|
Gfx* destinationGfx = (Gfx*)&res->Instructions[destinationIndex];
|
||||||
|
Gfx sourceGfx = res->Instructions[sourceIndex];
|
||||||
|
|
||||||
|
if (!originalGfx.contains(path) || !originalGfx[path].contains(patchName)) {
|
||||||
|
originalGfx[path][patchName] = {
|
||||||
|
destinationIndex,
|
||||||
|
*destinationGfx
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
*destinationGfx = sourceGfx;
|
||||||
|
}
|
||||||
|
|
||||||
extern "C" void ResourceMgr_UnpatchGfxByName(const char* path, const char* patchName) {
|
extern "C" void ResourceMgr_UnpatchGfxByName(const char* path, const char* patchName) {
|
||||||
if (originalGfx.contains(path) && originalGfx[path].contains(patchName)) {
|
if (originalGfx.contains(path) && originalGfx[path].contains(patchName)) {
|
||||||
auto res = std::static_pointer_cast<LUS::DisplayList>(
|
auto res = std::static_pointer_cast<LUS::DisplayList>(
|
||||||
|
Loading…
Reference in New Issue
Block a user