From 2b2f8c125757648eebdba6c5206d67bc131c3b24 Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Sat, 27 Mar 2021 18:07:36 -0400 Subject: [PATCH] J2DPicture::setBlendRatio OK --- asm/J2DGraph/J2DPicture.s | 8 +++- .../JSystem/J2DGraph/J2DPicture/J2DPicture.h | 44 ++++++++++++++++--- include/JSystem/JUtility/JUTTexture.h | 2 + src/f/f_op/f_op_msg_mng.cpp | 8 ++-- 4 files changed, 50 insertions(+), 12 deletions(-) diff --git a/asm/J2DGraph/J2DPicture.s b/asm/J2DGraph/J2DPicture.s index f4d961c38bc..ecb5c222854 100644 --- a/asm/J2DGraph/J2DPicture.s +++ b/asm/J2DGraph/J2DPicture.s @@ -2874,7 +2874,10 @@ swap__10J2DPictureFRfRf: /* 802FEA64 002FB9A4 C0 04 00 00 */ lfs f0, 0(r4) /* 802FEA68 002FB9A8 D0 03 00 00 */ stfs f0, 0(r3) /* 802FEA6C 002FB9AC D0 24 00 00 */ stfs f1, 0(r4) -/* 802FEA70 002FB9B0 4E 80 00 20 */ blr +/* 802FEA70 002FB9B0 4E 80 00 20 */ blr + +.global setBlendColorRatio__10J2DPictureFff +setBlendColorRatio__10J2DPictureFff: /* 802FEA74 002FB9B4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802FEA78 002FB9B8 7C 08 02 A6 */ mflr r0 /* 802FEA7C 002FB9BC 90 01 00 14 */ stw r0, 0x14(r1) @@ -2885,6 +2888,9 @@ swap__10J2DPictureFRfRf: /* 802FEA90 002FB9D0 7C 08 03 A6 */ mtlr r0 /* 802FEA94 002FB9D4 38 21 00 10 */ addi r1, r1, 0x10 /* 802FEA98 002FB9D8 4E 80 00 20 */ blr + +.global setBlendAlphaRatio__10J2DPictureFff +setBlendAlphaRatio__10J2DPictureFff: /* 802FEA9C 002FB9DC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802FEAA0 002FB9E0 7C 08 02 A6 */ mflr r0 /* 802FEAA4 002FB9E4 90 01 00 14 */ stw r0, 0x14(r1) diff --git a/include/JSystem/J2DGraph/J2DPicture/J2DPicture.h b/include/JSystem/J2DGraph/J2DPicture/J2DPicture.h index 5e3adafd114..01f1f4c2a2e 100644 --- a/include/JSystem/J2DGraph/J2DPicture/J2DPicture.h +++ b/include/JSystem/J2DGraph/J2DPicture/J2DPicture.h @@ -1,15 +1,47 @@ #ifndef J2DPICTURE_H_ #define J2DPICTURE_H_ +#include "JSystem/J2DGraph/J2DPane.h" +#include "JSystem/JUtility/JUTTexture.h" +#include "JSystem/JGeometry/JGeometry.h" #include "dolphin/types.h" -class J2DPicture { -public: +// define and move to appropriate header later +class JUTPalette; - // member functions - void setBlendRatio(f32, f32); - void append(const char*, f32); - void insert(const char*, u8, f32); +class J2DPicture : public J2DPane { +public: + virtual void initiate(); + virtual u32 prepareTexture(); // return type may be wrong + virtual void append(const ResTIMG*, f32); + virtual void append(const ResTIMG*, JUTPalette*, f32); + virtual void append(const char*, f32); + virtual void append(const char*, JUTPalette*, f32); + virtual void append(JUTTexture*, f32); + virtual void prepend(const ResTIMG*, f32); + virtual void prepend(const ResTIMG*, JUTPalette*, f32); + virtual void prepend(const char*, f32); + virtual void prepend(const char*, JUTPalette*, f32); + virtual void prepend(JUTTexture*, f32); + virtual void insert(const ResTIMG*, u8, f32); + virtual void insert(const ResTIMG*, JUTPalette*, u8, f32); + virtual void insert(const char*, u8, f32); + virtual void insert(const char*, JUTPalette*, u8, f32); + virtual void insert(JUTTexture*, u8, f32); + virtual void remove(u8); + virtual void remove(void); + virtual void remove(JUTTexture*); + virtual void draw(f32,f32,bool,bool,bool); + virtual void draw(f32,f32,u8,bool,bool,bool); + virtual void draw(f32,f32,f32,f32,bool,bool,bool); + virtual void drawOut(f32,f32,f32,f32,f32,f32); + virtual void drawOut(f32,f32,f32,f32,f32,f32,f32,f32); + virtual void drawOut(const JGeometry::TBox2&, const JGeometry::TBox2&); + virtual void load(_GXTexMapID, u8); + virtual void load(u8); + virtual void setBlendRatio(f32, f32); + virtual void setBlendColorRatio(f32, f32); + virtual void setBlendAlphaRatio(f32, f32); }; #endif \ No newline at end of file diff --git a/include/JSystem/JUtility/JUTTexture.h b/include/JSystem/JUtility/JUTTexture.h index 9b763874f79..ee20888f2cd 100644 --- a/include/JSystem/JUtility/JUTTexture.h +++ b/include/JSystem/JUtility/JUTTexture.h @@ -29,4 +29,6 @@ struct ResTIMG { /* Acts as the header to image data. Usually texture data immed u32 texture_data_offset; }; +class JUTTexture; + #endif // JSYSTEM_JUTILITY_TEXTURE_H \ No newline at end of file diff --git a/src/f/f_op/f_op_msg_mng.cpp b/src/f/f_op/f_op_msg_mng.cpp index f928ed7860e..c279e12fcfe 100644 --- a/src/f/f_op/f_op_msg_mng.cpp +++ b/src/f/f_op/f_op_msg_mng.cpp @@ -184,11 +184,9 @@ asm void fopMsgM_valueIncrease(int, int, u8) { #include "f/f_op/f_op_msg_mng/asm/func_80020160.s" } -// setBlendRatio__10J2DPictureFff -// J2DPicture::setBlendRatio(f32, f32) -asm void J2DPicture::setBlendRatio(f32, f32) { - nofralloc -#include "f/f_op/f_op_msg_mng/asm/func_800202CC.s" +void J2DPicture::setBlendRatio(f32 param_1, f32 param_2) { + setBlendColorRatio(param_1,param_2); + setBlendAlphaRatio(param_1,param_2); } // append__10J2DPictureFPCcf