summaryrefslogtreecommitdiff
path: root/include/JSystem/J3DGraphBase/J3DTransform.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/JSystem/J3DGraphBase/J3DTransform.h')
-rw-r--r--include/JSystem/J3DGraphBase/J3DTransform.h27
1 files changed, 26 insertions, 1 deletions
diff --git a/include/JSystem/J3DGraphBase/J3DTransform.h b/include/JSystem/J3DGraphBase/J3DTransform.h
index d4c7bed2ce..de850d7db2 100644
--- a/include/JSystem/J3DGraphBase/J3DTransform.h
+++ b/include/JSystem/J3DGraphBase/J3DTransform.h
@@ -15,11 +15,36 @@ struct J3DTransformInfo {
/* 0x00 */ Vec mScale;
/* 0x0C */ SVec mRotation;
/* 0x14 */ Vec mTranslate;
- inline J3DTransformInfo& operator=(const J3DTransformInfo& b) {
+
+ /* inline J3DTransformInfo& operator=(const J3DTransformInfo& b) {
mScale = b.mScale;
mRotation = b.mRotation;
mTranslate = b.mTranslate;
return *this;
+ } */
+
+ inline J3DTransformInfo& operator=(const register J3DTransformInfo& b) {
+ register const J3DTransformInfo& var_r31 = b;
+ register J3DTransformInfo& var_r30 = *this;
+
+ register f32 var_f31;
+ register f32 var_f0;
+ register int var_r0;
+ asm {
+ psq_l var_f31, 0x0(var_r31), 0, 0
+ psq_st var_f31, 0x0(var_r30), 0, 0
+ lfs var_f0, 0x8(var_r31)
+ stfs var_f0, 0x8(var_r30)
+ lwz var_r0, 0xc(var_r31)
+ stw var_r0, 0xc(var_r30)
+ lha var_r0, 0x10(var_r31)
+ sth var_r0, 0x10(var_r30)
+ psq_l var_f31, 0x14(var_r31), 0, 0
+ psq_st var_f31, 0x14(var_r30), 0, 0
+ lfs var_f0, 0x1c(var_r31)
+ stfs var_f0, 0x1c(var_r30)
+ }
+ return *this;
}
}; // Size: 0x20