Skip to content

Commit a41de30

Browse files
authored
d_a_myna equivalent (#2516)
1 parent ffa8e9b commit a41de30

File tree

3 files changed

+40
-138
lines changed

3 files changed

+40
-138
lines changed

configure.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1753,7 +1753,7 @@ def MatchingFor(*versions) -> bool:
17531753
ActorRel(NonMatching, "d_a_mg_fshop"),
17541754
ActorRel(MatchingFor("GZ2E01"), "d_a_mirror"),
17551755
ActorRel(NonMatching, "d_a_movie_player", extra_cflags=["-O3,p"]),
1756-
ActorRel(NonMatching, "d_a_myna"),
1756+
ActorRel(Equivalent, "d_a_myna"), # weak function order
17571757
ActorRel(NonMatching, "d_a_ni"),
17581758
ActorRel(NonMatching, "d_a_npc_aru"),
17591759
ActorRel(NonMatching, "d_a_npc_ash"),

include/d/actor/d_a_myna.h

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,35 @@
88
#include "m_Do/m_Do_ext.h"
99
#include "m_Do/m_Do_hostIO.h"
1010

11+
12+
class daMyna_HIO_c : public mDoHIO_entry_c {
13+
public:
14+
/* 8094A960 */ virtual ~daMyna_HIO_c() {}
15+
16+
// Must be inlined but defined in .cpp for sinit to match
17+
inline daMyna_HIO_c();
18+
19+
void genMessage(JORMContext*);
20+
21+
/* 0x04 */ f32 field_0x04; // DAT_8094ba40
22+
/* 0x08 */ f32 field_0x08; // DAT_8094ba44
23+
/* 0x0C */ f32 field_0x0C; // DAT_8094ba48
24+
/* 0x10 */ f32 field_0x10; // DAT_8094ba4c
25+
/* 0x14 */ f32 field_0x14; // DAT_8094ba50
26+
/* 0x18 */ f32 field_0x18; // DAT_8094ba54
27+
/* 0x1C */ f32 field_0x1C; // DAT_8094ba58
28+
/* 0x20 */ f32 field_0x20; // DAT_8094ba5c
29+
/* 0x24 */ s16 field_0x24; // DAT_8094ba60
30+
/* 0x26 */ s16 field_0x26; // DAT_8094ba62
31+
/* 0x28 */ s16 field_0x28; // DAT_8094ba64
32+
/* 0x2A */ s16 field_0x2A; // DAT_8094ba66
33+
/* 0x2C */ s16 field_0x2C; // DAT_8094ba68
34+
/* 0x2E */ s16 field_0x2E; // DAT_8094ba6a
35+
/* 0x30 */ s16 field_0x30; // DAT_8094ba6c
36+
};
37+
38+
STATIC_ASSERT(sizeof(daMyna_HIO_c) == 0x34);
39+
1140
// This struct may end up belonging elsewhere
1241
struct ShopItem {
1342
/* 0x0 */ u32 mTargetActorID;
@@ -184,32 +213,5 @@ class daMyna_c : public fopAc_ac_c {
184213

185214
STATIC_ASSERT(sizeof(daMyna_c) == 0x93C);
186215

187-
class daMyna_HIO_c : public mDoHIO_entry_c {
188-
public:
189-
/* 8094A960 */ virtual ~daMyna_HIO_c() {}
190-
191-
// Must be inlined but defined in .cpp for sinit to match
192-
inline daMyna_HIO_c();
193-
194-
void genMessage(JORMContext*);
195-
196-
/* 0x04 */ f32 field_0x04; // DAT_8094ba40
197-
/* 0x08 */ f32 field_0x08; // DAT_8094ba44
198-
/* 0x0C */ f32 field_0x0C; // DAT_8094ba48
199-
/* 0x10 */ f32 field_0x10; // DAT_8094ba4c
200-
/* 0x14 */ f32 field_0x14; // DAT_8094ba50
201-
/* 0x18 */ f32 field_0x18; // DAT_8094ba54
202-
/* 0x1C */ f32 field_0x1C; // DAT_8094ba58
203-
/* 0x20 */ f32 field_0x20; // DAT_8094ba5c
204-
/* 0x24 */ s16 field_0x24; // DAT_8094ba60
205-
/* 0x26 */ s16 field_0x26; // DAT_8094ba62
206-
/* 0x28 */ s16 field_0x28; // DAT_8094ba64
207-
/* 0x2A */ s16 field_0x2A; // DAT_8094ba66
208-
/* 0x2C */ s16 field_0x2C; // DAT_8094ba68
209-
/* 0x2E */ s16 field_0x2E; // DAT_8094ba6a
210-
/* 0x30 */ s16 field_0x30; // DAT_8094ba6c
211-
};
212-
213-
STATIC_ASSERT(sizeof(daMyna_HIO_c) == 0x34);
214216

215217
#endif /* D_A_MYNA_H */

src/d/actor/d_a_myna.cpp

Lines changed: 10 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,7 @@
1111
#include "d/actor/d_a_tag_myna_light.h"
1212
#include "SSystem/SComponent/c_math.h"
1313

14-
/* 8094B360-8094B36C 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
15-
static u8 cNullVec__6Z2Calc[12] = {
16-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
17-
};
18-
19-
/* 8094B36C-8094B380 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
20-
static u32 lit_1787[1 + 4 /* padding */] = {
21-
0x02000201,
22-
/* padding */
23-
0x40080000,
24-
0x00000000,
25-
0x3FE00000,
26-
0x00000000,
27-
};
14+
UNK_REL_DATA
2815

2916
/* 8094B488-8094B590 000128 0108+00 2/3 0/0 0/0 .data init_proc */
3017
static daMyna_c::ProcFunc init_proc[] = {
@@ -94,98 +81,7 @@ static int jntNodeCallBack(J3DJoint* i_jnt, int param_1) {
9481
return 1;
9582
}
9683

97-
/* 8094B9F0-8094B9F4 000008 0001+03 2/2 0/0 0/0 .bss @1109 */
98-
static u8 lit_1109[1 + 3 /* padding */];
99-
100-
/* 8094B9F4-8094B9F8 00000C 0001+03 0/0 0/0 0/0 .bss @1107 */
101-
#pragma push
102-
#pragma force_active on
103-
static u8 lit_1107[1 + 3 /* padding */];
104-
#pragma pop
105-
106-
/* 8094B9F8-8094B9FC 000010 0001+03 0/0 0/0 0/0 .bss @1105 */
107-
#pragma push
108-
#pragma force_active on
109-
static u8 lit_1105[1 + 3 /* padding */];
110-
#pragma pop
111-
112-
/* 8094B9FC-8094BA00 000014 0001+03 0/0 0/0 0/0 .bss @1104 */
113-
#pragma push
114-
#pragma force_active on
115-
static u8 lit_1104[1 + 3 /* padding */];
116-
#pragma pop
117-
118-
/* 8094BA00-8094BA04 000018 0001+03 0/0 0/0 0/0 .bss @1099 */
119-
#pragma push
120-
#pragma force_active on
121-
static u8 lit_1099[1 + 3 /* padding */];
122-
#pragma pop
123-
124-
/* 8094BA04-8094BA08 00001C 0001+03 0/0 0/0 0/0 .bss @1097 */
125-
#pragma push
126-
#pragma force_active on
127-
static u8 lit_1097[1 + 3 /* padding */];
128-
#pragma pop
129-
130-
/* 8094BA08-8094BA0C 000020 0001+03 0/0 0/0 0/0 .bss @1095 */
131-
#pragma push
132-
#pragma force_active on
133-
static u8 lit_1095[1 + 3 /* padding */];
134-
#pragma pop
135-
136-
/* 8094BA0C-8094BA10 000024 0001+03 0/0 0/0 0/0 .bss @1094 */
137-
#pragma push
138-
#pragma force_active on
139-
static u8 lit_1094[1 + 3 /* padding */];
140-
#pragma pop
141-
142-
/* 8094BA10-8094BA14 000028 0001+03 0/0 0/0 0/0 .bss @1057 */
143-
#pragma push
144-
#pragma force_active on
145-
static u8 lit_1057[1 + 3 /* padding */];
146-
#pragma pop
147-
148-
/* 8094BA14-8094BA18 00002C 0001+03 0/0 0/0 0/0 .bss @1055 */
149-
#pragma push
150-
#pragma force_active on
151-
static u8 lit_1055[1 + 3 /* padding */];
152-
#pragma pop
153-
154-
/* 8094BA18-8094BA1C 000030 0001+03 0/0 0/0 0/0 .bss @1053 */
155-
#pragma push
156-
#pragma force_active on
157-
static u8 lit_1053[1 + 3 /* padding */];
158-
#pragma pop
159-
160-
/* 8094BA1C-8094BA20 000034 0001+03 0/0 0/0 0/0 .bss @1052 */
161-
#pragma push
162-
#pragma force_active on
163-
static u8 lit_1052[1 + 3 /* padding */];
164-
#pragma pop
165-
166-
/* 8094BA20-8094BA24 000038 0001+03 0/0 0/0 0/0 .bss @1014 */
167-
#pragma push
168-
#pragma force_active on
169-
static u8 lit_1014[1 + 3 /* padding */];
170-
#pragma pop
171-
172-
/* 8094BA24-8094BA28 00003C 0001+03 0/0 0/0 0/0 .bss @1012 */
173-
#pragma push
174-
#pragma force_active on
175-
static u8 lit_1012[1 + 3 /* padding */];
176-
#pragma pop
177-
178-
/* 8094BA28-8094BA2C 000040 0001+03 0/0 0/0 0/0 .bss @1010 */
179-
#pragma push
180-
#pragma force_active on
181-
static u8 lit_1010[1 + 3 /* padding */];
182-
#pragma pop
183-
184-
/* 8094BA2C-8094BA30 000044 0001+03 0/0 0/0 0/0 .bss @1009 */
185-
#pragma push
186-
#pragma force_active on
187-
static u8 lit_1009[1 + 3 /* padding */];
188-
#pragma pop
84+
UNK_REL_BSS
18985

19086
/* 8094BA3C-8094BA70 000054 0034+00 15/15 0/0 0/0 .bss l_HOSTIO */
19187
static daMyna_HIO_c l_HOSTIO;
@@ -1754,16 +1650,20 @@ void daMyna_c::animeControl() {
17541650
case 8:
17551651
attr = J3DFrameCtrl::EMode_NONE;
17561652
break;
1757-
case 14:
1653+
case 13:
17581654
attr = J3DFrameCtrl::EMode_NONE;
17591655
break;
1656+
case 14:
1657+
break;
17601658
}
17611659

1762-
setMcaMorfAnm(getTrnsfrmKeyAnm(l_bckFileNameTBL[field_0x935]), rate, morf, attr, 0, -1);
1763-
if (cLib_checkBit<u16>(field_0x914, 0x40) == 0) {
1660+
J3DAnmTransformKey* anm = getTrnsfrmKeyAnm(l_bckFileNameTBL[field_0x935]);
1661+
setMcaMorfAnm(anm, rate, morf, attr, 0, -1);
1662+
if (cLib_checkBit<u16>((u16)field_0x914, 0x40) == 0) {
1663+
int attribute = 2;
17641664
J3DAnmTexPattern* btp = getTexPtrnAnm(l_btpFileNameTBL[field_0x936]);
17651665
if (btp != NULL) {
1766-
setBtpAnm(btp, mpMorf->getModel()->getModelData(), 1.0f, 2);
1666+
setBtpAnm(btp, mpMorf->getModel()->getModelData(), 1.0f, attribute);
17671667
cLib_onBit<u16>(field_0x914, 0x44);
17681668
}
17691669
}

0 commit comments

Comments
 (0)