mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-25 19:02: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 "textures/nintendo_rogo_static/nintendo_rogo_static.h"
|
||||
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);
|
||||
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
|
||||
// every item in a group at once. If you are looking for tabs they are rendered manually in ImGui in `DrawCosmeticsEditor`
|
||||
typedef enum {
|
||||
@ -915,11 +920,13 @@ void ApplyOrResetCustomGfxPatches(bool manualChange) {
|
||||
|
||||
// Greg Bridge
|
||||
if (Randomizer_GetSettingValue(RSK_RAINBOW_BRIDGE) == RO_BRIDGE_GREG) {
|
||||
ResourceMgr_PatchGfxByName(gRainbowBridgeDL, "RainbowBridge1", 2, gsSPGrayscale(true));
|
||||
ResourceMgr_PatchGfxByName(gRainbowBridgeDL, "RainbowBridge2", 10, gsDPSetGrayscaleColor(color.r, color.g, color.b, color.a));
|
||||
ResourceMgr_PatchGfxByName(gRainbowBridgeDL, "RainbowBridge_StartGrayscale", 2, gsSPGrayscale(true));
|
||||
ResourceMgr_PatchGfxByName(gRainbowBridgeDL, "RainbowBridge_MakeGreen", 10, gsDPSetGrayscaleColor(color.r, color.g, color.b, color.a));
|
||||
ResourceMgr_PatchGfxByName(gRainbowBridgeDL, "RainbowBridge_EndGrayscaleAndEndDlist", 79, gsSPBranchListOTRFilePath(gEndGrayscaleAndEndDlistDL));
|
||||
} else {
|
||||
ResourceMgr_UnpatchGfxByName(gRainbowBridgeDL, "RainbowBridge1");
|
||||
ResourceMgr_UnpatchGfxByName(gRainbowBridgeDL, "RainbowBridge2");
|
||||
ResourceMgr_UnpatchGfxByName(gRainbowBridgeDL, "RainbowBridge_StartGrayscale");
|
||||
ResourceMgr_UnpatchGfxByName(gRainbowBridgeDL, "RainbowBridge_MakeGreen");
|
||||
ResourceMgr_UnpatchGfxByName(gRainbowBridgeDL, "RainbowBridge_EndGrayscaleAndEndDlist");
|
||||
}
|
||||
}
|
||||
static CosmeticOption& consumableBlueRupee = cosmeticOptions.at("Consumable_BlueRupee");
|
||||
|
@ -1273,6 +1273,23 @@ extern "C" void ResourceMgr_PatchGfxByName(const char* path, const char* patchNa
|
||||
*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) {
|
||||
if (originalGfx.contains(path) && originalGfx[path].contains(patchName)) {
|
||||
auto res = std::static_pointer_cast<LUS::DisplayList>(
|
||||
|
Loading…
Reference in New Issue
Block a user