Skip to content

Commit 5b69bee

Browse files
committed
Merge branch 'master' into wip-xtconvert
2 parents 89d4b23 + 5163b2c commit 5b69bee

File tree

2 files changed

+80
-51
lines changed

2 files changed

+80
-51
lines changed

Editor/main_window/dock/lvl_item_properties.cpp

Lines changed: 74 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1808,8 +1808,10 @@ void LvlItemProperties::on_PROPS_NPCDirLeft_clicked()
18081808
{
18091809
if((item->data(ITEM_TYPE).toString() == "NPC")/*&&((item->data(2).toInt()==npcPtr))*/)
18101810
{
1811-
selData.npc.push_back(((ItemNPC *)item)->m_data);
1812-
((ItemNPC *)item)->changeDirection(-1);
1811+
ItemNPC *npc = qgraphicsitem_cast<ItemNPC *>(item);
1812+
Q_ASSERT(npc);
1813+
selData.npc.push_back(npc->m_data);
1814+
npc->changeDirection(-1);
18131815
//break;
18141816
}
18151817
}
@@ -1840,9 +1842,10 @@ void LvlItemProperties::on_PROPS_NPCDirRand_clicked()
18401842
{
18411843
if((item->data(ITEM_TYPE).toString() == "NPC")/*&&((item->data(2).toInt()==npcPtr))*/)
18421844
{
1843-
selData.npc.push_back(((ItemNPC *)item)->m_data);
1844-
((ItemNPC *)item)->changeDirection(0);
1845-
1845+
ItemNPC *npc = qgraphicsitem_cast<ItemNPC *>(item);
1846+
Q_ASSERT(npc);
1847+
selData.npc.push_back(npc->m_data);
1848+
npc->changeDirection(0);
18461849
//break;
18471850
}
18481851
}
@@ -1872,8 +1875,10 @@ void LvlItemProperties::on_PROPS_NPCDirRight_clicked()
18721875
{
18731876
if((item->data(ITEM_TYPE).toString() == "NPC")/*&&((item->data(2).toInt()==npcPtr))*/)
18741877
{
1875-
selData.npc.push_back(((ItemNPC *)item)->m_data);
1876-
((ItemNPC *)item)->changeDirection(1);
1878+
ItemNPC *npc = qgraphicsitem_cast<ItemNPC *>(item);
1879+
Q_ASSERT(npc);
1880+
selData.npc.push_back(npc->m_data);
1881+
npc->changeDirection(1);
18771882
//break;
18781883
}
18791884
}
@@ -1901,8 +1906,10 @@ void LvlItemProperties::on_PROPS_NpcFri_clicked(bool checked)
19011906
{
19021907
if((item->data(ITEM_TYPE).toString() == "NPC")/*&&((item->data(2).toInt()==npcPtr))*/)
19031908
{
1904-
selData.npc.push_back(((ItemNPC *)item)->m_data);
1905-
((ItemNPC *)item)->setFriendly(checked);
1909+
ItemNPC *npc = qgraphicsitem_cast<ItemNPC *>(item);
1910+
Q_ASSERT(npc);
1911+
selData.npc.push_back(npc->m_data);
1912+
npc->setFriendly(checked);
19061913
//break;
19071914
}
19081915
}
@@ -1931,8 +1938,10 @@ void LvlItemProperties::on_PROPS_NPCNoMove_clicked(bool checked)
19311938
{
19321939
if((item->data(ITEM_TYPE).toString() == "NPC")/*&&((item->data(2).toInt()==npcPtr))*/)
19331940
{
1934-
selData.npc.push_back(((ItemNPC *)item)->m_data);
1935-
((ItemNPC *)item)->setNoMovable(checked);
1941+
ItemNPC *npc = qgraphicsitem_cast<ItemNPC *>(item);
1942+
Q_ASSERT(npc);
1943+
selData.npc.push_back(npc->m_data);
1944+
npc->setNoMovable(checked);
19361945
//break;
19371946
}
19381947
}
@@ -1961,8 +1970,10 @@ void LvlItemProperties::on_PROPS_NpcBoss_clicked(bool checked)
19611970
{
19621971
if((item->data(ITEM_TYPE).toString() == "NPC")/*&&((item->data(2).toInt()==npcPtr))*/)
19631972
{
1964-
selData.npc.push_back(((ItemNPC *)item)->m_data);
1965-
((ItemNPC *)item)->setLegacyBoss(checked);
1973+
ItemNPC *npc = qgraphicsitem_cast<ItemNPC *>(item);
1974+
Q_ASSERT(npc);
1975+
selData.npc.push_back(npc->m_data);
1976+
npc->setLegacyBoss(checked);
19661977
//break;
19671978
}
19681979
}
@@ -2070,7 +2081,9 @@ void LvlItemProperties::on_PROPS_NPCSpecialSpin_valueChanged(int arg1)
20702081
{
20712082
if(item->data(ITEM_TYPE).toString() == "NPC")
20722083
{
2073-
LevelNPC npc = ((ItemNPC *)item)->m_data;
2084+
ItemNPC *npcI = qgraphicsitem_cast<ItemNPC *>(item);
2085+
Q_ASSERT(npcI);
2086+
LevelNPC npc = npcI->m_data;
20742087

20752088
//Inherit preferences from contained NPC if this NPC a container
20762089
obj_npc &t_npc = getNpcProps(npc, mw());
@@ -2081,9 +2094,9 @@ void LvlItemProperties::on_PROPS_NPCSpecialSpin_valueChanged(int arg1)
20812094
if(t_npc.setup.special_spin_value_offset != m_npcSpecSpinOffset) //wrong offset, go to next one
20822095
continue;
20832096

2084-
selData.npc.push_back(((ItemNPC *)item)->m_data);
2085-
((ItemNPC *)item)->m_data.special_data = arg1 - m_npcSpecSpinOffset;
2086-
((ItemNPC *)item)->arrayApply();
2097+
selData.npc.push_back(npcI->m_data);
2098+
npcI->m_data.special_data = arg1 - m_npcSpecSpinOffset;
2099+
npcI->arrayApply();
20872100
}
20882101
}
20892102
edit->scene->m_history->addChangeSettings(selData, HistorySettings::SETTING_SPECIAL_DATA, QVariant(arg1 - m_npcSpecSpinOffset));
@@ -2175,7 +2188,8 @@ void LvlItemProperties::processNpcContainerButton(QPushButton *btn)
21752188
{
21762189
if((item->data(ITEM_TYPE).toString() == "NPC")/*&&((item->data(ITEM_ARRAY_ID).toInt()==blockPtr))*/)
21772190
{
2178-
ItemNPC *npcI = ((ItemNPC *)item);
2191+
ItemNPC *npcI = qgraphicsitem_cast<ItemNPC*>(item);
2192+
Q_ASSERT(npcI);
21792193
selData.npc.push_back(npcI->m_data);
21802194
if(ui->PROPS_NPCContaiter == btn)
21812195
npcI->setIncludedNPC(selected_npc);
@@ -2234,17 +2248,19 @@ void LvlItemProperties::on_PROPS_NPCSpecialBox_currentIndexChanged(int index)
22342248
{
22352249
if(item->data(ITEM_TYPE).toString() == "NPC")
22362250
{
2237-
LevelNPC npc = ((ItemNPC *)item)->m_data;
2251+
ItemNPC *npcI = qgraphicsitem_cast<ItemNPC*>(item);
2252+
Q_ASSERT(npcI);
2253+
LevelNPC npc = npcI->m_data;
22382254

22392255
//Inherit preferences from contained NPC if this NPC a container
22402256
obj_npc &t_npc = getNpcProps(npc, mw());
22412257

22422258
if(t_npc.setup.special_type != 0) //wrong type, go to next one
22432259
continue;
22442260

2245-
selData.npc.push_back(((ItemNPC *)item)->m_data);
2246-
((ItemNPC *)item)->m_data.special_data = index;
2247-
((ItemNPC *)item)->arrayApply();
2261+
selData.npc.push_back(npcI->m_data);
2262+
npcI->m_data.special_data = index;
2263+
npcI->arrayApply();
22482264
}
22492265
}
22502266
edit->scene->m_history->addChangeSettings(selData, HistorySettings::SETTING_SPECIAL_DATA, QVariant(index));
@@ -2317,9 +2333,11 @@ void LvlItemProperties::on_PROPS_NPCGenType_currentIndexChanged(int index)
23172333
{
23182334
if(item->data(ITEM_TYPE).toString() == "NPC")
23192335
{
2320-
modData.npc.push_back(((ItemNPC *)item)->m_data);
2321-
((ItemNPC *)item)->setGenerator(((ItemNPC *)item)->m_data.generator,
2322-
((ItemNPC *)item)->m_data.generator_direct,
2336+
ItemNPC *npc = qgraphicsitem_cast<ItemNPC*>(item);
2337+
Q_ASSERT(npc);
2338+
modData.npc.push_back(npc->m_data);
2339+
npc->setGenerator(npc->m_data.generator,
2340+
npc->m_data.generator_direct,
23232341
index + 1
23242342
);
23252343
}
@@ -2411,10 +2429,11 @@ void LvlItemProperties::on_PROPS_NpcLayer_currentIndexChanged(int arg1i)
24112429
edit->LvlData.meta.modified = true;
24122430
for(QGraphicsItem *item : items)
24132431
{
2432+
ItemNPC *npc = qgraphicsitem_cast<ItemNPC *>(item);
24142433
if(item->data(ITEM_TYPE).toString() == "NPC")
24152434
{
2416-
modData.npc.push_back(((ItemNPC *)item)->m_data);
2417-
((ItemNPC *)item)->setLayer(arg1);
2435+
modData.npc.push_back(npc->m_data);
2436+
npc->setLayer(arg1);
24182437
}
24192438
}
24202439
edit->scene->m_history->addChangedLayer(modData, arg1);
@@ -2450,12 +2469,13 @@ void LvlItemProperties::on_PROPS_NpcAttachLayer_currentIndexChanged(int arg1i)
24502469
{
24512470
if(item->data(ITEM_TYPE).toString() == "NPC")
24522471
{
2453-
modData.npc.push_back(((ItemNPC *)item)->m_data);
2472+
ItemNPC *npc = qgraphicsitem_cast<ItemNPC *>(item);
2473+
modData.npc.push_back(npc->m_data);
24542474
if(ui->PROPS_NpcAttachLayer->currentIndex() > 0)
2455-
((ItemNPC *)item)->m_data.attach_layer = arg1;
2475+
npc->m_data.attach_layer = arg1;
24562476
else
2457-
((ItemNPC *)item)->m_data.attach_layer.clear();
2458-
((ItemNPC *)item)->arrayApply();
2477+
npc->m_data.attach_layer.clear();
2478+
npc->arrayApply();
24592479
}
24602480
}
24612481
if(ui->PROPS_NpcAttachLayer->currentIndex() > 0)
@@ -2493,12 +2513,13 @@ void LvlItemProperties::on_PROPS_NpcEventActivate_currentIndexChanged(int arg1i)
24932513
{
24942514
if(item->data(ITEM_TYPE).toString() == "NPC")
24952515
{
2496-
modData.npc.push_back(((ItemNPC *)item)->m_data);
2516+
ItemNPC *npc = qgraphicsitem_cast<ItemNPC *>(item);
2517+
modData.npc.push_back(npc->m_data);
24972518
if(ui->PROPS_NpcEventActivate->currentIndex() > 0)
2498-
((ItemNPC *)item)->m_data.event_activate = arg1;
2519+
npc->m_data.event_activate = arg1;
24992520
else
2500-
((ItemNPC *)item)->m_data.event_activate = "";
2501-
((ItemNPC *)item)->arrayApply();
2521+
npc->m_data.event_activate.clear();
2522+
npc->arrayApply();
25022523
}
25032524
}
25042525
if(ui->PROPS_NpcEventActivate->currentIndex() > 0)
@@ -2536,12 +2557,14 @@ void LvlItemProperties::on_PROPS_NpcEventDeath_currentIndexChanged(int arg1i)
25362557
{
25372558
if(item->data(ITEM_TYPE).toString() == "NPC")
25382559
{
2539-
modData.npc.push_back(((ItemNPC *)item)->m_data);
2560+
ItemNPC *npc = qgraphicsitem_cast<ItemNPC *>(item);
2561+
Q_ASSERT(npc);
2562+
modData.npc.push_back(npc->m_data);
25402563
if(ui->PROPS_NpcEventDeath->currentIndex() > 0)
2541-
((ItemNPC *)item)->m_data.event_die = arg1;
2564+
npc->m_data.event_die = arg1;
25422565
else
2543-
((ItemNPC *)item)->m_data.event_die = "";
2544-
((ItemNPC *)item)->arrayApply();
2566+
npc->m_data.event_die.clear();
2567+
npc->arrayApply();
25452568
}
25462569
}
25472570
if(ui->PROPS_NpcEventDeath->currentIndex() > 0)
@@ -2579,12 +2602,14 @@ void LvlItemProperties::on_PROPS_NpcEventTalk_currentIndexChanged(int arg1i)
25792602
{
25802603
if(item->data(ITEM_TYPE).toString() == "NPC")
25812604
{
2582-
modData.npc.push_back(((ItemNPC *)item)->m_data);
2605+
ItemNPC *npc = qgraphicsitem_cast<ItemNPC*>(item);
2606+
Q_ASSERT(npc);
2607+
modData.npc.push_back(npc->m_data);
25832608
if(ui->PROPS_NpcEventTalk->currentIndex() > 0)
2584-
((ItemNPC *)item)->m_data.event_talk = arg1;
2609+
npc->m_data.event_talk = arg1;
25852610
else
2586-
((ItemNPC *)item)->m_data.event_talk = "";
2587-
((ItemNPC *)item)->arrayApply();
2611+
npc->m_data.event_talk.clear();
2612+
npc->arrayApply();
25882613
}
25892614
}
25902615
if(ui->PROPS_NpcEventTalk->currentIndex() > 0)
@@ -2622,12 +2647,14 @@ void LvlItemProperties::on_PROPS_NpcEventEmptyLayer_currentIndexChanged(int arg1
26222647
{
26232648
if(item->data(ITEM_TYPE).toString() == "NPC")
26242649
{
2625-
modData.npc.push_back(((ItemNPC *)item)->m_data);
2650+
ItemNPC *npc = qgraphicsitem_cast<ItemNPC*>(item);
2651+
Q_ASSERT(npc);
2652+
modData.npc.push_back(npc->m_data);
26262653
if(ui->PROPS_NpcEventEmptyLayer->currentIndex() > 0)
2627-
((ItemNPC *)item)->m_data.event_emptylayer = arg1;
2654+
npc->m_data.event_emptylayer = arg1;
26282655
else
2629-
((ItemNPC *)item)->m_data.event_emptylayer = "";
2630-
((ItemNPC *)item)->arrayApply();
2656+
npc->m_data.event_emptylayer.clear();
2657+
npc->arrayApply();
26312658
}
26322659
}
26332660
if(ui->PROPS_NpcEventEmptyLayer->currentIndex() > 0)

Editor/main_window/dock/lvl_warp_props.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -613,8 +613,9 @@ void LvlWarpBox::on_WarpEnterEvent_currentIndexChanged(int arg1i)
613613
if(w)
614614
{
615615
dirData.push_back(w->event_enter);
616-
dirData.push_back(arg1);
617-
w->event_enter = arg1;
616+
QString newEvent = arg1i > 0 ? arg1 : QString();
617+
dirData.push_back(newEvent);
618+
w->event_enter = newEvent;
618619
}
619620

620621
edit->scene->m_history->addChangeWarpSettings(static_cast<int>(warpId),
@@ -642,8 +643,9 @@ void LvlWarpBox::on_WarpExitEvent_currentIndexChanged(int arg1i)
642643
if(w)
643644
{
644645
dirData.push_back(w->event_exit);
645-
dirData.push_back(arg1);
646-
w->event_exit = arg1;
646+
QString newEvent = arg1i > 0 ? arg1 : QString();
647+
dirData.push_back(newEvent);
648+
w->event_exit = newEvent;
647649
}
648650

649651
edit->scene->m_history->addChangeWarpSettings(static_cast<int>(warpId),

0 commit comments

Comments
 (0)