Skip to content

Commit 2d95327

Browse files
committed
add event data selection in event mode via click
1 parent 59e57ae commit 2d95327

File tree

5 files changed

+24
-8
lines changed

5 files changed

+24
-8
lines changed

include/DOM/EventDOMNode.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ class LEventDOMNode : public LEntityDOMNode
6464
virtual void PostProcess() override;
6565
virtual void PreProcess() override;
6666

67+
uint32_t GetEventNo(){ return mEventNo; }
68+
6769
/*=== Type operations ===*/
6870
// Returns whether this node is of the given type, or derives from a node of that type.
6971
virtual bool IsNodeType(EDOMNodeType type) const override

include/DOM/EventDataDOMNode.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ class LEventDataDOMNode : public LBGRenderDOMNode {
2323

2424
//Lines of text from event's csv file
2525
std::vector<std::string> mEventText;
26+
27+
uint32_t mEventNo;
28+
2629
public:
2730
typedef LBGRenderDOMNode Super;
2831

@@ -37,6 +40,8 @@ class LEventDataDOMNode : public LBGRenderDOMNode {
3740
void RenderDetailsUI(float dt, TextEditor* event);
3841
void RenderHierarchyUI(std::shared_ptr<LEventDataDOMNode> self, LEditorSelection* mode_selection);
3942

43+
uint32_t GetEventNo() { return mEventNo; }
44+
4045
/*=== Type operations ===*/
4146
// Returns whether this node is of the given type, or derives from a node of that type.
4247
virtual bool IsNodeType(EDOMNodeType type) const override

src/DOM/CameraAnimationDOMNode.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -122,19 +122,13 @@ void LCameraAnimationDOMNode::RenderDetailsUI(float dt, LSceneCamera* camera)
122122
if(ImGui::Button(">"))
123123
{
124124
mPlaying = true;
125-
126125
mCurrentFrame = 0;
127-
128-
//camera->Fovy = glm::radians(mFovFrames.mFrames[mFovFrames.mKeys[0]].value);
129-
130126
mNextPosKeyX = 1;
131127
mNextPosKeyY = 1;
132128
mNextPosKeyZ = 1;
133-
134129
mNextTargetKeyX = 1;
135130
mNextTargetKeyY = 1;
136131
mNextTargetKeyZ = 1;
137-
138132
mNextFovKey = 1;
139133
}
140134

src/DOM/EventDataDOMNode.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ void LEventDataDOMNode::LoadEventArchive(std::shared_ptr<Archive::Rarc> arc, std
8282
std::shared_ptr<Archive::File> msgFile = mEventArchive->GetFile(std::filesystem::path("message") / std::string(eventCsvName + ".csv"));
8383
std::shared_ptr<Archive::File> txtFile = mEventArchive->GetFile(std::filesystem::path("text") / std::string(eventScriptName + ".txt"));
8484

85+
std::sscanf(eventScriptName.data(), "event%02d", &mEventNo);
86+
8587
if(msgFile != nullptr){
8688
std::string messages = std::string((char*)msgFile->GetData(), msgFile->GetSize());
8789
std::string msg = "";

src/ui/BooldozerEditor.cpp

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -420,8 +420,20 @@ void LBooldozerEditor::Render(float dt, LEditorScene* renderer_scene)
420420
glReadPixels(mousePos.x - cursorPos.x, ((uint32_t)winSize.y) - (mousePos.y - cursorPos.y), 1, 1, GL_RED_INTEGER, GL_INT, (void*)&id);
421421

422422
for(auto node : mLoadedMap->GetChildrenOfType<LBGRenderDOMNode>(EDOMNodeType::BGRender)){
423-
if(node->GetID() == id){
424-
GetSelectionManager()->AddToSelection(node);
423+
if(mCurrentMode == &mEventMode){
424+
if(node->GetID() == id && node->GetNodeType() == EDOMNodeType::Event){
425+
auto eventDataNodes = mLoadedMap->GetChildrenOfType<LEventDataDOMNode>(EDOMNodeType::EventData);
426+
for (auto datanode : eventDataNodes){
427+
if(datanode->GetEventNo() == std::static_pointer_cast<LEventDOMNode>(node)->GetEventNo()){
428+
GetSelectionManager()->AddToSelection(datanode);
429+
break;
430+
}
431+
}
432+
}
433+
} else {
434+
if(node->GetID() == id){
435+
GetSelectionManager()->AddToSelection(node);
436+
}
425437
}
426438
}
427439
}
@@ -515,6 +527,7 @@ void LBooldozerEditor::SetGizmo(ImGuizmo::OPERATION mode)
515527

516528
void LBooldozerEditor::ChangeMode()
517529
{
530+
GetSelectionManager()->ClearSelection();
518531
if (mCurrentMode != nullptr)
519532
mCurrentMode->OnBecomeInactive();
520533

0 commit comments

Comments
 (0)