Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions config/SOUE01/splits.txt
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,11 @@ d/lyt/d2d.cpp:
d/lyt/d_lyt_draw_mark.cpp:
.text start:0x800ACAC0 end:0x800AE958 align:16
.ctors start:0x804DB6CC end:0x804DB6D0
.rodata start:0x804E3850 end:0x804E39E0
.data start:0x80510088 end:0x80510780
.sdata start:0x805722B8 end:0x805722C0
.sdata2 start:0x805797B0 end:0x805797D0
.bss start:0x805A6140 end:0x805A6370

d/lyt/d_textbox.cpp:
.text start:0x800AE960 end:0x800B1628 align:16
Expand Down Expand Up @@ -549,6 +554,7 @@ toBeSorted/d_flow_mgr.cpp:

d/d_lyt_base.cpp:
.text start:0x800C4480 end:0x800C4690 align:16
.data start:0x80511B30 end:0x80511B80

toBeSorted/unk_npc_path_stuff_1.cpp:
.text start:0x800C4690 end:0x800C731C align:16
Expand Down
280 changes: 166 additions & 114 deletions config/SOUE01/symbols.txt

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -492,7 +492,7 @@ def MatchingFor(*versions):
Object(NonMatching, "toBeSorted/d_path.cpp"),
Object(NonMatching, "toBeSorted/d_area.cpp"),
Object(Matching, "d/lyt/d2d.cpp"),
Object(NonMatching, "d/lyt/d_lyt_draw_mark.cpp"),
Object(Matching, "d/lyt/d_lyt_draw_mark.cpp"),
Object(Matching, "d/lyt/d_textbox.cpp"),
Object(Matching, "d/lyt/d_window.cpp"),
Object(Matching, "d/d_lyt_hio.cpp"),
Expand Down
5 changes: 5 additions & 0 deletions include/d/lyt/d_lyt_control_game.h
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,11 @@ class dLytControlGame_c : public dBase_c {
return mPauseDemoDisp;
}

void setDrawMarkRelated(UNKWORD p1, UNKWORD p2) {
field_0x15C54 = p1;
field_0x15C58 = p2;
}

STATE_FUNC_DECLARE(dLytControlGame_c, Normal);
STATE_FUNC_DECLARE(dLytControlGame_c, Pause_SetRes);
STATE_FUNC_DECLARE(dLytControlGame_c, Pause_SyncRes);
Expand Down
66 changes: 56 additions & 10 deletions include/d/lyt/d_lyt_draw_mark.h
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
#ifndef D_LYT_DRAW_MARK_H
#define D_LYT_DRAW_MARK_H

#include "common.h"
#include "d/lyt/d2d.h"
#include "m/m_vec.h"
#include "nw4r/lyt/lyt_pane.h"
#include "s/s_State.hpp"

/** 2D UI - Handles drawing the shape for re-sealing the Imprisoned One */
class dLytDrawMark_c {
public:
dLytDrawMark_c() : mStateMgr(*this) {}
Expand All @@ -24,25 +27,68 @@ class dLytDrawMark_c {
}

private:
void buildVariant01();
void buildVariant02();
void buildVariant03();

void convertScreenPosToDpdPos(mVec2_c *pOutDpd, mVec2_c *screenPos) const;
void fn_800ADC10(mVec2_c screenPos) const;
s32 getNumLines() const;
void loadPanePos();
void detectSwordSwing();

STATE_FUNC_DECLARE(dLytDrawMark_c, Wait);
STATE_FUNC_DECLARE(dLytDrawMark_c, In);
STATE_FUNC_DECLARE(dLytDrawMark_c, RingIn);
STATE_FUNC_DECLARE(dLytDrawMark_c, MoveWait);
STATE_FUNC_DECLARE(dLytDrawMark_c, MoveDraw);
STATE_FUNC_DECLARE(dLytDrawMark_c, MoveFix);
STATE_FUNC_DECLARE(dLytDrawMark_c, MoveEnd); // Unused?
STATE_FUNC_DECLARE(dLytDrawMark_c, Complete);

/* 0x000 */ UI_STATE_MGR_DECLARE(dLytDrawMark_c);
/* 0x018 */ d2d::LytBase_c mLyt;
/* 0x03C */ d2d::LytBase_c mLyt;
/* 0x0CC */ d2d::AnmGroup_c mAnm[16];

/* 0x4CC */ u8 _0x4CC[0x504 - 0x4CC];

/* 0x4CC */ nw4r::lyt::Pane *mpPanes[13];
/* 0x500 */ nw4r::lyt::Pane *field_0x500;

/* 0x504 */ d2d::ResAccIf_c mResAcc;

/* 0x874 */ u8 _0x874[0x88C - 0x874];
/* 0x874 */ mVec2_c field_0x874;
/* 0x87C */ mVec2_c field_0x87C;
/* 0x884 */ mVec2_c field_0x884;

/* 0x88C */ mVec2_c mStartPositions[6];
/* 0x8BC */ mVec2_c mEndPositions[6];

/* 0x8EC */ s32 mLineLoopIndex;

/* 0x8F0 */ s32 mVariant;
/* 0x8F4 */ s32 field_0x8F4;
/* 0x8F8 */ s32 field_0x8F8;
/* 0x8FC */ s32 mLineFixIndex;
/* 0x900 */ s32 field_0x900;
/* 0x904 */ s32 field_0x904;
/* 0x908 */ s32 field_0x908;

/* 0x90C */ u8 _0x90C[0x910 - 0x90C];

/* 0x88C */ mVec2_c field_0x88C[6];
/* 0x8BC */ mVec2_c field_0x8BC[6];
/* 0x910 */ f32 field_0x910;
/* 0x914 */ f32 field_0x914;
/* 0x918 */ f32 field_0x918[10];

/* 0x8EC */ u8 _0x8EC[0x940 - 0x8EC];
/* 0x940 */ bool field_0x940;
/* 0x941 */ bool field_0x941;
/* 0x942 */ bool mLastLine;
/* 0x943 */ bool mNeedEnableLineLoop;
/* 0x944 */ u8 field_0x944;

/* 0x940 */ u8 field_0x940;
/* 0x941 */ u8 field_0x941;
/* 0x945 */ bool mAnmCtrlInUse[16];

/* 0x942 */ u8 _0x942[0x958 - 0x942];
/* 0x955 */ bool field_0x955;
/* 0x956 */ bool field_0x956;
/* 0x957 */ bool field_0x957;
};

#endif
4 changes: 4 additions & 0 deletions include/m/m_vec.h
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,10 @@ class mVec2_c : public EGG::Vector2f {
return cM::atan2s(x, y);
}

s16 ang2() const {
return cM::atan2s(y, x);
}

mVec2_c operator*(f32 f) const {
return mVec2_c(x * f, y * f);
}
Expand Down
Loading