MCPcopy Create free account
hub / github.com/Meridian59/Meridian59 / DeleteLineDefsJoinSectors

Function DeleteLineDefsJoinSectors

roomedit/source/objects.cpp:2395–2441  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2393*/
2394
2395void DeleteLineDefsJoinSectors (SelPtr *ldlist)
2396{
2397 SelPtr cur, slist;
2398 SHORT sd1, sd2;
2399 SHORT s1, s2;
2400
2401 /* first, do the tests for all LineDefs */
2402 for (cur = *ldlist; cur; cur = cur->next)
2403 {
2404 // ObjectsNeeded( OBJ_LINEDEFS, 0);
2405 sd1 = LineDefs[ cur->objnum].sidedef1;
2406 sd2 = LineDefs[ cur->objnum].sidedef2;
2407 if (sd1 < 0 || sd2 < 0)
2408 {
2409 Beep();
2410 Notify("ERROR: LineDef #%d has only one side", cur->objnum);
2411 return;
2412 }
2413 // ObjectsNeeded( OBJ_SIDEDEFS, 0);
2414 s1 = SideDefs[ sd1].sector;
2415 s2 = SideDefs[ sd2].sector;
2416 if (s1 < 0 || s2 < 0)
2417 {
2418 Beep();
2419 Notify("ERROR: LineDef #%d has two sides, but one side is not bound "
2420 "to any Sector", cur->objnum);
2421 return;
2422 }
2423 }
2424
2425 /* then join the Sectors and delete the LineDefs */
2426 for (cur = *ldlist; cur; cur = cur->next)
2427 {
2428 // ObjectsNeeded( OBJ_LINEDEFS, 0);
2429 sd1 = LineDefs[ cur->objnum].sidedef1;
2430 sd2 = LineDefs[ cur->objnum].sidedef2;
2431 // ObjectsNeeded( OBJ_SIDEDEFS, 0);
2432 s1 = SideDefs[ sd1].sector;
2433 s2 = SideDefs[ sd2].sector;
2434 slist = NULL;
2435 SelectObject( &slist, s2);
2436 SelectObject( &slist, s1);
2437 MergeSectors( &slist);
2438 ForgetSelection( &slist);
2439 }
2440 DeleteObjects( OBJ_LINEDEFS, ldlist);
2441}
2442
2443
2444

Callers 1

CmMiscLDDeleteMethod · 0.85

Calls 6

BeepFunction · 0.85
NotifyFunction · 0.85
SelectObjectFunction · 0.85
MergeSectorsFunction · 0.85
ForgetSelectionFunction · 0.85
DeleteObjectsFunction · 0.85

Tested by

no test coverage detected