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

Method ChangeMode

roomedit/source/editcli.cpp:872–992  ·  view source on GitHub ↗

//////////////////////////////////////////////////////////////// TEditorClient ------------- According to edit mode : Setup menu, info windows

Source from the content-addressed store, hash-verified

870// According to edit mode : Setup menu, info windows
871//
872void TEditorClient::ChangeMode (int NewMode)
873{
874 SelPtr NewSel;
875 int PrevMode = EditMode;
876 EditMode = NewMode;
877
878 // If same mode, return directly
879 if ( PrevMode == EditMode )
880 return ;
881
882 // special cases for the selection list...
883 if (Selected)
884 {
885 // select all LineDefs bound to the selected Sectors
886 if (PrevMode == OBJ_SECTORS && EditMode == OBJ_LINEDEFS)
887 {
888 SHORT l, sd;
889
890 NewSel = NULL;
891 for (l = 0; l < NumLineDefs; l++)
892 {
893 sd = LineDefs [l].sidedef1;
894 assert (sd == -1 || (sd >= 0 && sd < NumSideDefs));
895 if (sd >= 0 && IsSelected (Selected, SideDefs[sd].sector))
896 SelectObject (&NewSel, l);
897 else
898 {
899 sd = LineDefs [l].sidedef2;
900 assert (sd == -1 || (sd >= 0 && sd < NumSideDefs));
901 if (sd >= 0 && IsSelected (Selected, SideDefs[sd].sector))
902 SelectObject (&NewSel, l);
903 }
904 }
905 ForgetSelection (&Selected);
906 Selected = NewSel;
907 }
908
909 // select all Vertices bound to the selected LineDefs
910 else if (PrevMode == OBJ_LINEDEFS && EditMode == OBJ_VERTEXES)
911 {
912 NewSel = NULL;
913 while (Selected)
914 {
915 SHORT n = Selected->objnum;
916 assert (n >= 0 && n < NumLineDefs);
917 SHORT start = LineDefs[n].start;
918 SHORT end = LineDefs[n].end;
919 if ( ! IsSelected (NewSel, start) )
920 SelectObject (&NewSel, start);
921
922 if ( ! IsSelected (NewSel, end))
923 SelectObject (&NewSel, end);
924
925 UnSelectObject (&Selected, n);
926 }
927 Selected = NewSel;
928 }
929

Callers

nothing calls this directly

Calls 5

SelectObjectFunction · 0.85
ForgetSelectionFunction · 0.85
UnSelectObjectFunction · 0.85
GetMaxObjectNumFunction · 0.85
IsSelectedFunction · 0.70

Tested by

no test coverage detected