diff --git a/aegisub/src/ass_dialogue.cpp b/aegisub/src/ass_dialogue.cpp index aac2fd53d..31cbac83b 100644 --- a/aegisub/src/ass_dialogue.cpp +++ b/aegisub/src/ass_dialogue.cpp @@ -550,7 +550,7 @@ void AssDialogue::StripTag (wxString tagName) { // Look for blocks for (vector::iterator cur=Blocks.begin();cur!=Blocks.end();cur++) { if ((*cur)->GetType() == BLOCK_OVERRIDE) { - AssDialogueBlockOverride *over = AssDialogueBlock::GetAsOverride(*cur); + AssDialogueBlockOverride *over = dynamic_cast(*cur); wxString temp; for (size_t i=0;iTags.size();i++) { if (over->Tags[i]->Name != tagName) temp += over->Tags[i]->ToString(); @@ -583,7 +583,7 @@ void AssDialogue::ConvertTagsToSRT () { // Iterate through blocks ParseASSTags(); for (size_t i=0;i(Blocks.at(i)); if (curBlock) { // Iterate through overrides for (size_t j=0;jTags.size();j++) { @@ -646,7 +646,7 @@ void AssDialogue::ConvertTagsToSRT () { // Plain text else { - curPlain = AssDialogueBlock::GetAsPlain(Blocks.at(i)); + curPlain = dynamic_cast(Blocks.at(i)); if (curPlain) { final += curPlain->GetText(); } @@ -787,48 +787,14 @@ AssDialogueBlock::AssDialogueBlock () { } /// @brief Destructor -/// @return AssDialogueBlock::~AssDialogueBlock () { } -/// @brief If it isn't a plain block, returns NULL ---------------------- Returns as a plain block -/// @param base -/// @return -AssDialogueBlockPlain *AssDialogueBlock::GetAsPlain(AssDialogueBlock *base) { - if (!base) return NULL; - if (base->GetType() == BLOCK_PLAIN) { - return static_cast (base); - } - return NULL; -} - -/// @brief If it isn't an override block, returns NULL ---------------------------- Returns as an override block -/// @param base -/// @return -AssDialogueBlockOverride *AssDialogueBlock::GetAsOverride(AssDialogueBlock *base) { - if (!base) return NULL; - if (base->GetType() == BLOCK_OVERRIDE) { - return static_cast (base); - } - return NULL; -} - -/// @brief If it isn't an drawing block, returns NULL ---------------------------- Returns as a drawing block -/// @param base -/// @return -AssDialogueBlockDrawing *AssDialogueBlock::GetAsDrawing(AssDialogueBlock *base) { - if (!base) return NULL; - if (base->GetType() == BLOCK_DRAWING) { - return static_cast (base); - } - return NULL; -} - -/// @brief Constructor AssDialogueBlockPlain ////////////////////// +/// @brief Constructor AssDialogueBlockPlain AssDialogueBlockPlain::AssDialogueBlockPlain () { } -/// @brief Constructor AssDialogueBlockDrawing ////////////////////// +/// @brief Constructor AssDialogueBlockDrawing AssDialogueBlockDrawing::AssDialogueBlockDrawing () { } diff --git a/aegisub/src/ass_dialogue.h b/aegisub/src/ass_dialogue.h index df2816459..e1eb27d32 100644 --- a/aegisub/src/ass_dialogue.h +++ b/aegisub/src/ass_dialogue.h @@ -113,9 +113,6 @@ public: /// @return /// virtual wxString GetText() { return text; } - static AssDialogueBlockPlain *GetAsPlain(AssDialogueBlock *base); // Returns a block base as a plain block if it is valid, null otherwise - static AssDialogueBlockOverride *GetAsOverride(AssDialogueBlock *base); // Returns a block base as an override block if it is valid, null otherwise - static AssDialogueBlockDrawing *GetAsDrawing(AssDialogueBlock *base); // Returns a block base as a drawing block if it is valid, null otherwise }; diff --git a/aegisub/src/ass_karaoke.cpp b/aegisub/src/ass_karaoke.cpp index 6d1f3d71d..01703e94a 100644 --- a/aegisub/src/ass_karaoke.cpp +++ b/aegisub/src/ass_karaoke.cpp @@ -83,7 +83,7 @@ void ParseAssKaraokeTags(const AssDialogue *line, AssKaraokeVector &syls) break; case BLOCK_OVERRIDE: { - AssDialogueBlockOverride *ovr = block->GetAsOverride(block); + AssDialogueBlockOverride *ovr = dynamic_cast(block); for (int j = 0; j < (int)ovr->Tags.size(); j++) { AssOverrideTag *tag = ovr->Tags[j]; diff --git a/aegisub/src/auto4_lua_assfile.cpp b/aegisub/src/auto4_lua_assfile.cpp index 136f69594..5729ef29d 100644 --- a/aegisub/src/auto4_lua_assfile.cpp +++ b/aegisub/src/auto4_lua_assfile.cpp @@ -897,7 +897,7 @@ namespace Automation4 { case BLOCK_OVERRIDE: { bool brackets_open = false; - AssDialogueBlockOverride *ovr = block->GetAsOverride(block); + AssDialogueBlockOverride *ovr = dynamic_cast(block); for (int j = 0; j < (int)ovr->Tags.size(); j++) { AssOverrideTag *tag = ovr->Tags[j]; diff --git a/aegisub/src/dialog_resample.cpp b/aegisub/src/dialog_resample.cpp index bc017f264..ae8ad5410 100644 --- a/aegisub/src/dialog_resample.cpp +++ b/aegisub/src/dialog_resample.cpp @@ -275,7 +275,7 @@ void DialogResample::OnResample (wxCommandEvent &event) { size_t nblocks = curDiag->Blocks.size(); AssDialogueBlockDrawing *curBlock; for (size_t i=0;iBlocks.at(i)); + curBlock = dynamic_cast(curDiag->Blocks.at(i)); if (curBlock) { curBlock->TransformCoords(m[0],m[2],rx,ry); } diff --git a/aegisub/src/subs_edit_box.cpp b/aegisub/src/subs_edit_box.cpp index 969b8a873..0b7416ba2 100644 --- a/aegisub/src/subs_edit_box.cpp +++ b/aegisub/src/subs_edit_box.cpp @@ -1178,7 +1178,7 @@ void SubsEditBox::SetOverride (wxString tagname,wxString preValue,int forcePos,b AssOverrideTag *tag; if (isFont || isColor || isFlag) { for (size_t i=0;i<=blockn;i++) { - override = AssDialogueBlock::GetAsOverride(line->Blocks.at(i)); + override = dynamic_cast(line->Blocks.at(i)); if (override) { for (size_t j=0;jTags.size();j++) { tag = override->Tags.at(j); @@ -1278,8 +1278,8 @@ void SubsEditBox::SetOverride (wxString tagname,wxString preValue,int forcePos,b } // Get current block as plain or override - AssDialogueBlockPlain *plain = AssDialogueBlock::GetAsPlain(block); - override = AssDialogueBlock::GetAsOverride(block); + AssDialogueBlockPlain *plain = dynamic_cast(block); + override = dynamic_cast(block); // Plain if (plain) { @@ -1321,8 +1321,8 @@ void SubsEditBox::SetOverride (wxString tagname,wxString preValue,int forcePos,b TextEdit->SetTextTo(line->Text); blockn = BlockAtPos(selstart); block = line->Blocks.at(blockn); - plain = AssDialogueBlock::GetAsPlain(block); - override = AssDialogueBlock::GetAsOverride(block); + plain = dynamic_cast(block); + override = dynamic_cast(block); // Plain if (plain) { diff --git a/aegisub/src/visual_tool.cpp b/aegisub/src/visual_tool.cpp index 63a65e710..555caa28a 100644 --- a/aegisub/src/visual_tool.cpp +++ b/aegisub/src/visual_tool.cpp @@ -451,7 +451,7 @@ void VisualTool::GetLinePosition(AssDialogue *diag,int &x, int &y, for (size_t i=0;iBlocks.at(i)); + override = dynamic_cast(diag->Blocks.at(i)); if (override) { for (size_t j=0;jTags.size();j++) { tag = override->Tags.at(j); @@ -540,7 +540,7 @@ void VisualTool::GetLineMove(AssDialogue *diag,bool &hasMove,int &x // For each block for (size_t i=0;iBlocks.at(i)); + override = dynamic_cast(diag->Blocks.at(i)); if (override) { for (size_t j=0;jTags.size();j++) { tag = override->Tags.at(j); @@ -598,7 +598,7 @@ void VisualTool::GetLineRotation(AssDialogue *diag,float &rx,float } // Process override - override = AssDialogueBlock::GetAsOverride(diag->Blocks.at(0)); + override = dynamic_cast(diag->Blocks.at(0)); if (override) { for (size_t j=0;jTags.size();j++) { tag = override->Tags.at(j); @@ -636,7 +636,7 @@ void VisualTool::GetLineScale(AssDialogue *diag,float &scalX,float } // Process override - override = AssDialogueBlock::GetAsOverride(diag->Blocks.at(0)); + override = dynamic_cast(diag->Blocks.at(0)); if (override) { for (size_t j=0;jTags.size();j++) { tag = override->Tags.at(j); @@ -679,7 +679,7 @@ void VisualTool::GetLineClip(AssDialogue *diag,int &x1,int &y1,int } // Process override - override = AssDialogueBlock::GetAsOverride(diag->Blocks.at(0)); + override = dynamic_cast(diag->Blocks.at(0)); if (override) { for (size_t j=0;jTags.size();j++) { tag = override->Tags.at(j); @@ -725,7 +725,7 @@ wxString VisualTool::GetLineVectorClip(AssDialogue *diag,int &scale } // Process override - override = AssDialogueBlock::GetAsOverride(diag->Blocks.at(0)); + override = dynamic_cast(diag->Blocks.at(0)); if (override) { for (size_t j=0;jTags.size();j++) { tag = override->Tags.at(j);