diff --git a/include/JSystem/J3DGraphBase/J3DTransform.h b/include/JSystem/J3DGraphBase/J3DTransform.h index 657a49061..24103714a 100644 --- a/include/JSystem/J3DGraphBase/J3DTransform.h +++ b/include/JSystem/J3DGraphBase/J3DTransform.h @@ -28,7 +28,7 @@ struct J3DTransformInfo { extern J3DTransformInfo const j3dDefaultTransformInfo; extern Vec const j3dDefaultScale; extern Mtx const j3dDefaultMtx; -extern f32 PSMulUnit01[2]; +extern f32 PSMulUnit01[]; void J3DGQRSetup7(u32 param_0, u32 param_1, u32 param_2, u32 param_3); f32 J3DCalcZValue(MtxP m, Vec v); diff --git a/src/JSystem/J3DGraphBase/J3DTransform.cpp b/src/JSystem/J3DGraphBase/J3DTransform.cpp index a7da51f9d..35ed52316 100644 --- a/src/JSystem/J3DGraphBase/J3DTransform.cpp +++ b/src/JSystem/J3DGraphBase/J3DTransform.cpp @@ -7,6 +7,11 @@ #include "JSystem/J3DGraphBase/J3DStruct.h" #include "JSystem/JMath/JMATrigonometric.h" +// This symbol needs to go in .data, but as it's only 8 bytes long, it would normally go in .sdata or .sdata2. +// But if the array doesn't have a size specified in its declaration, and its definition comes *after* it gets used, +// that forces it into .data instead because the size is unknown when it's used. Even const is ignored. +f32 PSMulUnit01[2] = { 0.0f, -1.0f }; + /* 802DA0A8-802DA0B0 .text __MTGQR7__FUl */ void __MTGQR7(register u32 v) { asm { diff --git a/src/d/actor/d_a_ib.cpp b/src/d/actor/d_a_ib.cpp index e667a8405..af3c0f062 100644 --- a/src/d/actor/d_a_ib.cpp +++ b/src/d/actor/d_a_ib.cpp @@ -480,8 +480,8 @@ static BOOL daIball_Execute(daIball_c* i_this) { } // This symbol needs to go in .data, but as it's only 7 bytes long, it would normally go in .sdata or .sdata2. -// But if the variable is only defined *after* it gets used in daIball_c::CreateHeap that forces it into .data. -// The size of the variable is ignored, and even whether it's const or not is ignored. +// But if the array doesn't have a size specified in its declaration, and its definition comes *after* it gets used, +// that forces it into .data instead because the size is unknown when it's used. Even const is ignored. const char daIball_c::m_arcname[] = "Always"; dCcD_SrcCyl daIball_c::m_cyl_src = {