mirror of
https://github.com/zeldaret/ss
synced 2026-05-30 00:46:41 -04:00
Link d2d (#145)
This commit is contained in:
+13
-13
@@ -3782,7 +3782,7 @@ setAnmFrame__Q23d2d14AnmGroupBase_cFf = .text:0x800AC900; // type:function size:
|
||||
syncAnmFrame__Q23d2d14AnmGroupBase_cFv = .text:0x800AC910; // type:function size:0xC
|
||||
setForward__Q23d2d14AnmGroupBase_cFv = .text:0x800AC920; // type:function size:0x14
|
||||
setBackward__Q23d2d14AnmGroupBase_cFv = .text:0x800AC940; // type:function size:0x14
|
||||
fn_800AC960 = .text:0x800AC960; // type:function size:0x4C
|
||||
pushToEnd__3d2dFPQ34nw4r3lyt4Pane = .text:0x800AC960; // type:function size:0x4C
|
||||
init__Q23d2d9AnmGroupsFPQ23d2d10AnmGroup_cPCQ23d2d15LytBrlanMappingUlPQ23m2d10ResAccIf_cPQ23d2d8Layout_c = .text:0x800AC9B0; // type:function size:0x80
|
||||
remove__Q23d2d9AnmGroupsFv = .text:0x800ACA30; // type:function size:0x64
|
||||
draw__Q23d2d9LytBase_cFv = .text:0x800ACAA0; // type:function size:0x18
|
||||
@@ -3860,7 +3860,7 @@ fn_800B0DE0 = .text:0x800B0DE0; // type:function size:0x158
|
||||
fn_800B0F40 = .text:0x800B0F40; // type:function size:0x240
|
||||
fn_800B1180 = .text:0x800B1180; // type:function size:0x3F0
|
||||
dTextBox_c__setFontSize = .text:0x800B1570; // type:function size:0x14
|
||||
fn_800B1590 = .text:0x800B1590; // type:function size:0x14
|
||||
MySetScale__10dTextBox_cFRCQ34nw4r3lyt4Size = .text:0x800B1590; // type:function size:0x14
|
||||
GetRuntimeTypeInfo__Q34nw4r3lyt7TextBoxCFv = .text:0x800B15B0; // type:function size:0x8 scope:weak
|
||||
fn_800B15C0 = .text:0x800B15C0; // type:function size:0x68
|
||||
__ct__9dWindow_cFPCQ44nw4r3lyt3res6WindowRCQ34nw4r3lyt11ResBlockSet = .text:0x800B1630; // type:function size:0x3C
|
||||
@@ -29169,9 +29169,9 @@ lbl_804FBC7C = .rodata:0x804FBC7C; // type:object size:0xC
|
||||
zeroVec__3EGG = .rodata:0x804FBC88; // type:object size:0xC data:float
|
||||
lbl_804FBC98 = .rodata:0x804FBC98; // type:object size:0xC data:4byte
|
||||
lbl_804FBCA4 = .rodata:0x804FBCA4; // type:object size:0xC data:4byte
|
||||
lbl_804FBCB0 = .rodata:0x804FBCB0; // type:object size:0x10 data:4byte
|
||||
sIndTexMtxId__3EGG = .rodata:0x804FBCB0; // type:object size:0xC data:4byte
|
||||
sCpuTexGradientOp__3EGG = .rodata:0x804FBCC0; // type:object size:0x48 data:4byte
|
||||
lbl_804FBD08 = .rodata:0x804FBD08; // type:object size:0x48 data:float
|
||||
lbl_804FBD08 = .rodata:0x804FBD08; // type:object size:0xC data:float
|
||||
lbl_804FBD50 = .rodata:0x804FBD50; // type:object size:0x10 data:float
|
||||
lbl_804FBD60 = .rodata:0x804FBD60; // type:object size:0x10 data:float
|
||||
lbl_804FBD70 = .rodata:0x804FBD70; // type:object size:0x18
|
||||
@@ -30943,7 +30943,7 @@ lbl_8050FF88 = .data:0x8050FF88; // type:object size:0x10
|
||||
lbl_8050FF98 = .data:0x8050FF98; // type:object size:0x10
|
||||
lbl_8050FFA8 = .data:0x8050FFA8; // type:object size:0x10 data:string
|
||||
lbl_8050FFB8 = .data:0x8050FFB8; // type:object size:0x10
|
||||
lbl_8050FFC8 = .data:0x8050FFC8; // type:object size:0x48
|
||||
lbl_8050FFC8 = .data:0x8050FFC8; // type:object size:0xC data:string
|
||||
__vt__Q23d2d9LytBase_c = .data:0x80510010; // type:object size:0x1C
|
||||
__vt__Q23d2d7Multi_c = .data:0x8051002C; // type:object size:0x1C
|
||||
__vt__Q23d2d8Layout_c = .data:0x80510048; // type:object size:0x40
|
||||
@@ -38090,11 +38090,11 @@ lbl_80572268 = .sdata:0x80572268; // type:object size:0x8
|
||||
lbl_80572270 = .sdata:0x80572270; // type:object size:0x8
|
||||
lbl_80572278 = .sdata:0x80572278; // type:object size:0x8
|
||||
lbl_80572280 = .sdata:0x80572280; // type:object size:0x8
|
||||
lbl_80572288 = .sdata:0x80572288; // type:object size:0x8
|
||||
lbl_80572290 = .sdata:0x80572290; // type:object size:0x8
|
||||
lbl_80572298 = .sdata:0x80572298; // type:object size:0x8
|
||||
lbl_805722A0 = .sdata:0x805722A0; // type:object size:0x8
|
||||
lbl_805722A8 = .sdata:0x805722A8; // type:object size:0x8
|
||||
lbl_80572288 = .sdata:0x80572288; // type:object size:0x6 data:string
|
||||
lbl_80572290 = .sdata:0x80572290; // type:object size:0x5 data:string
|
||||
lbl_80572298 = .sdata:0x80572298; // type:object size:0x6 data:string
|
||||
lbl_805722A0 = .sdata:0x805722A0; // type:object size:0x5 data:string
|
||||
lbl_805722A8 = .sdata:0x805722A8; // type:object size:0x6 data:string
|
||||
lbl_805722B0 = .sdata:0x805722B0; // type:object size:0x4 data:string
|
||||
lbl_805722B4 = .sdata:0x805722B4; // type:object size:0x4 data:4byte
|
||||
lbl_805722B8 = .sdata:0x805722B8; // type:object size:0x4
|
||||
@@ -39831,7 +39831,7 @@ lbl_80574F2C = .sdata:0x80574F2C; // type:object size:0x4 data:4byte
|
||||
lbl_80574F30 = .sdata:0x80574F30; // type:object size:0x8
|
||||
sTextureSize__Q23EGG12LightTexture = .sdata:0x80574F38; // type:object size:0x2 data:2byte
|
||||
lbl_80574F3A = .sdata:0x80574F3A; // type:object size:0x1 data:byte
|
||||
lbl_80574F3C = .sdata:0x80574F3C; // type:object size:0xC
|
||||
lbl_80574F3C = .sdata:0x80574F3C; // type:object size:0x5 data:string
|
||||
sByteCodeCalcStr__Q23EGG7ModelEx = .sdata:0x80574F48; // type:object size:0x4 data:4byte
|
||||
lbl_80574F50 = .sdata:0x80574F50; // type:object size:0x8 data:string
|
||||
sByteCodeMixStr__Q23EGG7ModelEx = .sdata:0x80574F58; // type:object size:0x4 data:4byte
|
||||
@@ -48007,7 +48007,7 @@ lbl_8057F3E0 = .sdata2:0x8057F3E0; // type:object size:0x4 data:float
|
||||
lbl_8057F3E8 = .sdata2:0x8057F3E8; // type:object size:0x8 data:double
|
||||
lbl_8057F3F0 = .sdata2:0x8057F3F0; // type:object size:0x8 data:double
|
||||
lbl_8057F3F8 = .sdata2:0x8057F3F8; // type:object size:0x4
|
||||
lbl_8057F3FC = .sdata2:0x8057F3FC; // type:object size:0xC
|
||||
lbl_8057F3FC = .sdata2:0x8057F3FC; // type:object size:0x6
|
||||
lbl_8057F408 = .sdata2:0x8057F408; // type:object size:0x4 data:4byte
|
||||
lbl_8057F40C = .sdata2:0x8057F40C; // type:object size:0x2 data:2byte
|
||||
lbl_8057F40E = .sdata2:0x8057F40E; // type:object size:0x1 data:byte
|
||||
@@ -48123,7 +48123,7 @@ lbl_8057F6B8 = .sdata2:0x8057F6B8; // type:object size:0x4 data:float
|
||||
lbl_8057F6BC = .sdata2:0x8057F6BC; // type:object size:0x4 data:float
|
||||
lbl_8057F6C0 = .sdata2:0x8057F6C0; // type:object size:0x4 data:float
|
||||
lbl_8057F6C4 = .sdata2:0x8057F6C4; // type:object size:0x4 data:float
|
||||
lbl_8057F6C8 = .sdata2:0x8057F6C8; // type:object size:0x18 data:float
|
||||
lbl_8057F6C8 = .sdata2:0x8057F6C8; // type:object size:0x4 data:float
|
||||
lbl_8057F6E0 = .sdata2:0x8057F6E0; // type:object size:0x8
|
||||
lbl_8057F6E8 = .sdata2:0x8057F6E8; // type:object size:0x8 data:double
|
||||
lbl_8057F6F0 = .sdata2:0x8057F6F0; // type:object size:0x4 data:float
|
||||
|
||||
+1
-1
@@ -375,7 +375,7 @@ config.libs = [
|
||||
Object(Matching, "toBeSorted/counters/key_piece_counter.cpp"),
|
||||
Object(Matching, "toBeSorted/counters/extra_wallet_counter.cpp"),
|
||||
Object(NonMatching, "d/lyt/d_structd.cpp"),
|
||||
Object(NonMatching, "d/lyt/d2d.cpp"),
|
||||
Object(Matching, "d/lyt/d2d.cpp"),
|
||||
Object(NonMatching, "d/lyt/d_textbox.cpp"),
|
||||
Object(Matching, "d/lyt/d_window.cpp"),
|
||||
Object(Matching, "d/d_textunk.cpp"),
|
||||
|
||||
@@ -42,10 +42,59 @@ public:
|
||||
return 1.0f;
|
||||
}
|
||||
|
||||
inline static f32 getFn800B1FD0() {
|
||||
if (sInstance != nullptr) {
|
||||
return sInstance->fn_800B1FD0();
|
||||
}
|
||||
return 1.0f;
|
||||
}
|
||||
|
||||
inline static f32 getFn800B1F10() {
|
||||
return sInstance->fn_800B1F10();
|
||||
}
|
||||
|
||||
inline static f32 getFn800B1FF0() {
|
||||
if (sInstance != nullptr) {
|
||||
return sInstance->fn_800B1FF0();
|
||||
}
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
inline static f32 getFn800B2000() {
|
||||
if (sInstance != nullptr) {
|
||||
return sInstance->fn_800B2000();
|
||||
}
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
inline static f32 getFn800B2010() {
|
||||
if (sInstance != nullptr) {
|
||||
return sInstance->fn_800B2010();
|
||||
}
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
inline static f32 getFn800B2020() {
|
||||
if (sInstance != nullptr) {
|
||||
return sInstance->fn_800B2020();
|
||||
}
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
inline static f32 getFn800B2030() {
|
||||
if (sInstance != nullptr) {
|
||||
return sInstance->fn_800B2030();
|
||||
}
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
inline static f32 getFn800B2040() {
|
||||
if (sInstance != nullptr) {
|
||||
return sInstance->fn_800B2040();
|
||||
}
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
private:
|
||||
static UnkTextThing *sInstance;
|
||||
|
||||
|
||||
@@ -286,6 +286,8 @@ struct AnmGroup_c : public AnmGroupBase_c {
|
||||
/* 0x28 */ m2d::FrameCtrl_c mFrameCtrl;
|
||||
};
|
||||
|
||||
void pushToEnd(nw4r::lyt::Pane *);
|
||||
|
||||
// This abstraction is apparently only ever used in CsGame
|
||||
class AnmGroups {
|
||||
public:
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
|
||||
#include "d/lyt/d2d.h"
|
||||
#include "nw4r/lyt/lyt_textBox.h"
|
||||
|
||||
extern "C" void *lbl_805753B0;
|
||||
#include "nw4r/lyt/lyt_types.h"
|
||||
|
||||
class dTextBox_c : public nw4r::lyt::TextBox {
|
||||
friend class dWindow_c;
|
||||
@@ -18,13 +17,13 @@ public:
|
||||
mpLytBase = lytBase;
|
||||
}
|
||||
|
||||
void SetScale(float scale) {
|
||||
nw4r::math::VEC2 value = GetScale();
|
||||
value.x = GetScale().x * scale;
|
||||
value.y = GetScale().y * scale;
|
||||
void SetScale(f32 scale) {
|
||||
nw4r::lyt::Size value(mTextScale);
|
||||
value.width *= scale;
|
||||
value.height *= scale;
|
||||
mScale = scale;
|
||||
MySetScale(value);
|
||||
nw4r::lyt::TextBox::SetScale(value);
|
||||
nw4r::lyt::TextBox::SetFontSize(value);
|
||||
}
|
||||
|
||||
void set0x1F8(u8 val) {
|
||||
@@ -35,28 +34,18 @@ public:
|
||||
return mScale;
|
||||
}
|
||||
|
||||
static inline f32 GetTranslateX1() {
|
||||
if (lbl_805753B0 != nullptr) {
|
||||
return GetTranslateX1_();
|
||||
} else {
|
||||
return 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_800E0A60(const char *area, ...) {
|
||||
// TODO
|
||||
}
|
||||
|
||||
static f32 GetTranslateX1_();
|
||||
|
||||
// @bug: This does not implement UT's RTTI, so casts to dTextBox_c will
|
||||
// succeed even if all you have is a lyt::TextBox
|
||||
private:
|
||||
void MySetScale(const nw4r::math::VEC2 &value);
|
||||
void MySetScale(const nw4r::lyt::Size &value);
|
||||
|
||||
/* 0x104 */ d2d::LytBase_c *mpLytBase;
|
||||
/* 0x108 */ u8 field_0x108[0x118 - 0x108];
|
||||
/* 0x118 */ nw4r::math::VEC2 mTextScale;
|
||||
/* 0x118 */ nw4r::lyt::Size mTextScale;
|
||||
/* 0x120 */ f32 mScale;
|
||||
/* 0x124 */ u8 field_0x124[0x1F8 - 0x124];
|
||||
/* 0x1F8 */ u8 field_0x1F8;
|
||||
|
||||
+18
-14
@@ -44,23 +44,27 @@ struct SizedString {
|
||||
|
||||
void operator+=(const char *src) {
|
||||
if (src != nullptr) {
|
||||
size_t destLen = strlen(mChars);
|
||||
size_t copyLen = strlen(src);
|
||||
|
||||
// Make sure copy length isnt more than destination length
|
||||
if (destLen + copyLen + 1 >= Size) {
|
||||
size_t tmpLen = Size - destLen;
|
||||
copyLen = tmpLen - 1;
|
||||
}
|
||||
|
||||
strncpy(mChars + destLen, src, copyLen);
|
||||
|
||||
// make sure string is null terminated
|
||||
size_t offset = destLen + copyLen;
|
||||
mChars[offset] = '\0';
|
||||
append(src);
|
||||
}
|
||||
}
|
||||
|
||||
void append(const char *src) {
|
||||
size_t destLen = strlen(mChars);
|
||||
size_t copyLen = strlen(src);
|
||||
|
||||
// Make sure copy length isnt more than destination length
|
||||
if (destLen + copyLen + 1 >= Size) {
|
||||
size_t tmpLen = Size - destLen;
|
||||
copyLen = tmpLen - 1;
|
||||
}
|
||||
|
||||
strncpy(mChars + destLen, src, copyLen);
|
||||
|
||||
// make sure string is null terminated
|
||||
size_t offset = destLen + copyLen;
|
||||
mChars[offset] = '\0';
|
||||
}
|
||||
|
||||
bool operator==(const char *other) const {
|
||||
return strequals(mChars, other);
|
||||
}
|
||||
|
||||
+36
-38
@@ -1,15 +1,15 @@
|
||||
#include "d/lyt/d2d.h"
|
||||
|
||||
#include "d/d_font_manager.h"
|
||||
#include "d/d_textunk.h"
|
||||
#include "d/lyt/d_textbox.h"
|
||||
#include "d/lyt/d_window.h"
|
||||
#include "egg/gfx/eggScreen.h"
|
||||
#include "nw4r/lyt/lyt_bounding.h"
|
||||
#include "nw4r/lyt/lyt_group.h"
|
||||
#include "nw4r/lyt/lyt_pane.h"
|
||||
#include "nw4r/lyt/lyt_picture.h"
|
||||
#include "nw4r/lyt/lyt_textBox.h"
|
||||
#include "nw4r/lyt/lyt_utils.h"
|
||||
#include "nw4r/lyt/lyt_window.h"
|
||||
#include "sized_string.h"
|
||||
|
||||
using namespace nw4r::lyt;
|
||||
@@ -200,15 +200,15 @@ void Multi_c::calcAfter() {
|
||||
|
||||
extern "C" bool NeedsScreenAdjustment();
|
||||
|
||||
// Largerly copied from m2d::Simple_c::draw
|
||||
// Largely copied from m2d::Simple_c::draw
|
||||
void Multi_c::draw() {
|
||||
nw4r::ut::Rect r = mLayout.GetLayoutRect();
|
||||
f32 near = 0.0f;
|
||||
f32 far = 500.0f;
|
||||
EGG::Screen s;
|
||||
bool needsAdjust = NeedsScreenAdjustment();
|
||||
f32 f1 = EGG::Screen::GetSizeXMax(EGG::Screen::TV_MODE_UNK_3);
|
||||
f32 f2 = EGG::Screen::GetSizeXMax(EGG::Screen::TV_MODE_16_9);
|
||||
f32 f1 = EGG::Screen::GetSizeXMax(EGG::Screen::TV_MODE_16_9);
|
||||
f32 f2 = EGG::Screen::GetSizeXMax(EGG::Screen::TV_MODE_4_3);
|
||||
|
||||
f32 left = needsAdjust ? f1 * r.left / f2 : r.left;
|
||||
f32 right = needsAdjust ? f1 * r.right / f2 : r.right;
|
||||
@@ -445,8 +445,6 @@ extern "C" const char *fn_801B2600(const char *);
|
||||
extern "C" void fn_800AF930(dTextBox_c *, const char *);
|
||||
extern "C" void fn_800B0F40(dTextBox_c *);
|
||||
|
||||
// NOTE: This function uses `textBox->GetTranslateX1()` as a general placeholder to figure
|
||||
// out the details first. In reality these are all different functions!
|
||||
void LytBase_c::setProperties(nw4r::lyt::Pane *pane, f32 posX, f32 posY, f32 scale, f32 spaceX, f32 spaceY) {
|
||||
if (pane->GetName()[0] != 'T') {
|
||||
return;
|
||||
@@ -475,41 +473,40 @@ void LytBase_c::setProperties(nw4r::lyt::Pane *pane, f32 posX, f32 posY, f32 sca
|
||||
}
|
||||
|
||||
nw4r::math::VEC3 t2 = textBox->GetTranslate();
|
||||
t2.x += textBox->GetTranslateX1();
|
||||
t2.y += textBox->GetTranslateX1();
|
||||
t2.x += UnkTextThing::getFn800B2030();
|
||||
t2.y += UnkTextThing::getFn800B2040();
|
||||
textBox->SetTranslate(t2);
|
||||
|
||||
if (scale != -9999.0f) {
|
||||
const nw4r::ut::Font *f = textBox->GetFont();
|
||||
if (f != nullptr) {
|
||||
// VEC2 internally copied via GPRs here, should be FPRs
|
||||
textBox->SetScale(scale * 0.01f);
|
||||
scale *= 0.01f;
|
||||
textBox->SetScale(scale);
|
||||
}
|
||||
} else {
|
||||
const nw4r::ut::Font *f = textBox->GetFont();
|
||||
if (f != nullptr) {
|
||||
// VEC2 internally copied via GPRs here, should be FPRs
|
||||
textBox->SetScale(textBox->GetTranslateX1());
|
||||
textBox->SetScale(UnkTextThing::getFn800B1FD0());
|
||||
}
|
||||
}
|
||||
|
||||
f32 f4 = 0.0f;
|
||||
f32 f6 = 0.0f;
|
||||
f32 f4 = 0.0f;
|
||||
|
||||
if (spaceX != -9999.0f) {
|
||||
textBox->SetCharSpace(spaceX);
|
||||
} else {
|
||||
f6 = textBox->GetTranslateX1();
|
||||
f6 = UnkTextThing::getFn800B2010();
|
||||
}
|
||||
|
||||
if (spaceY != -9999.0f) {
|
||||
textBox->SetLineSpace(spaceY);
|
||||
} else {
|
||||
f4 = textBox->GetTranslateX1();
|
||||
f4 = UnkTextThing::getFn800B1FF0();
|
||||
}
|
||||
|
||||
textBox->SetCharSpace(f6 + textBox->GetCharSpace() + textBox->GetTranslateX1());
|
||||
textBox->SetLineSpace(f4 + textBox->GetLineSpace() + textBox->GetTranslateX1());
|
||||
textBox->SetCharSpace(textBox->GetCharSpace() + UnkTextThing::getFn800B2020() + f6);
|
||||
textBox->SetLineSpace(textBox->GetLineSpace() + UnkTextThing::getFn800B2000() + f4);
|
||||
fn_800AB930(textBox);
|
||||
}
|
||||
|
||||
@@ -595,7 +592,7 @@ bool LytBase_c::fn_800ABB80(dTextBox_c *textbox1, dTextBox_c *textbox2, int arg)
|
||||
bool LytBase_c::fn_800ABCE0(
|
||||
const nw4r::lyt::res::ExtUserData *userDatum, dTextBox_c *textbox1, dTextBox_c *textbox2, int arg
|
||||
) {
|
||||
int userDatInt = userDatum->GetInt();
|
||||
s32 userDatInt = userDatum->GetInt();
|
||||
SizedString<0x40> str1;
|
||||
SizedString<0x40> str2;
|
||||
|
||||
@@ -605,11 +602,9 @@ bool LytBase_c::fn_800ABCE0(
|
||||
if (arg != -1) {
|
||||
userDatInt = arg;
|
||||
}
|
||||
str2.sprintf(":%02d", userDatInt);
|
||||
// TODO this operator is not behaving correctly here - there's
|
||||
// an additional null check, and the source string address is
|
||||
// computed twice via stack instead of once.
|
||||
str1 += str2;
|
||||
SizedString<0x40> &fmt = str2;
|
||||
fmt.sprintf(":%02d", userDatInt);
|
||||
str1.append(fmt);
|
||||
}
|
||||
|
||||
const char *text = LMS_GetTextByLabel(getMsbtInfo(), str1);
|
||||
@@ -693,17 +688,15 @@ extern "C" void fn_800AF840(dTextBox_c *textbox1, MsbtInfo *, const char *, int
|
||||
bool LytBase_c::fn_800AC1AC(
|
||||
const nw4r::lyt::res::ExtUserData *userDatum, dTextBox_c *textbox1, dTextBox_c *textbox2, int arg, void *unk
|
||||
) {
|
||||
int userDatInt = userDatum->GetInt();
|
||||
s32 userDatInt = userDatum->GetInt();
|
||||
SizedString<0x40> str1;
|
||||
SizedString<0x40> str2;
|
||||
|
||||
str1 = textbox2->GetName();
|
||||
if (userDatInt != 0) {
|
||||
str2.sprintf(":%02d", 0);
|
||||
// TODO this operator is not behaving correctly here - there's
|
||||
// an additional null check, and the source string address is
|
||||
// computed twice via stack instead of once.
|
||||
str1 += str2;
|
||||
SizedString<0x40> &fmt = str2;
|
||||
fmt.sprintf(":%02d", 0);
|
||||
str1.append(fmt);
|
||||
}
|
||||
|
||||
fn_800AF840(textbox1, getMsbtInfo(), str1, arg, unk);
|
||||
@@ -754,18 +747,17 @@ bool hasSameBaseName(const char *left, const char *right) {
|
||||
char *sRef = "ref";
|
||||
|
||||
void dSubPane::linkMeters(nw4r::lyt::Group *group, d2d::SubPaneList *meterGroup) {
|
||||
// single regswap
|
||||
nw4r::ut::LinkList<d2d::SubPaneListNode, 0>::Iterator beginIt = meterGroup->GetBeginIter();
|
||||
nw4r::ut::LinkList<d2d::SubPaneListNode, 0>::Iterator endIt = meterGroup->GetEndIter();
|
||||
SubPaneList::Iterator beginIt = meterGroup->GetBeginIter();
|
||||
SubPaneList::Iterator endIt = meterGroup->GetEndIter();
|
||||
|
||||
for (nw4r::lyt::PaneList::Iterator paneIt = group->GetPaneList()->GetBeginIter();
|
||||
paneIt != group->GetPaneList()->GetEndIter(); ++paneIt) {
|
||||
nw4r::lyt::PaneList::Iterator paneEndIt = group->GetPaneList()->GetEndIter();
|
||||
|
||||
for (nw4r::lyt::PaneList::Iterator paneIt = group->GetPaneList()->GetBeginIter(); paneIt != paneEndIt; ++paneIt) {
|
||||
nw4r::lyt::Pane *pane = paneIt->mTarget;
|
||||
int num = pane->GetExtUserDataNum();
|
||||
if (num != 0) {
|
||||
if (pane->GetExtUserDataNum()) {
|
||||
const nw4r::lyt::res::ExtUserData *dat = pane->FindExtUserDataByName(sRef);
|
||||
if (dat != nullptr && dat->GetType() == nw4r::lyt::res::TYPE_STRING) {
|
||||
for (nw4r::ut::LinkList<d2d::SubPaneListNode, 0>::Iterator it = beginIt; it != endIt; ++it) {
|
||||
for (SubPaneList::Iterator it = beginIt; it != endIt; ++it) {
|
||||
d2d::dSubPane *meter = it->mpLytPane;
|
||||
if (!meter->LytMeter0x24()) {
|
||||
if (hasSameBaseName(dat->GetString(), meter->getName())) {
|
||||
@@ -895,6 +887,12 @@ void AnmGroupBase_c::setBackward() {
|
||||
mpFrameCtrl->setBackward();
|
||||
}
|
||||
|
||||
void pushToEnd(nw4r::lyt::Pane *pane) {
|
||||
nw4r::lyt::Pane *parent = pane->GetParent();
|
||||
parent->RemoveChild(pane);
|
||||
parent->AppendChild(pane);
|
||||
}
|
||||
|
||||
bool AnmGroups::init(
|
||||
d2d::AnmGroup_c *pGroups, const LytBrlanMapping *mappings, u32 num, m2d::ResAccIf_c *acc, d2d::Layout_c *layout
|
||||
) {
|
||||
|
||||
Reference in New Issue
Block a user