diff options
author | Ian C <ianc@noddybox.co.uk> | 2011-06-09 13:57:32 +0000 |
---|---|---|
committer | Ian C <ianc@noddybox.co.uk> | 2011-06-09 13:57:32 +0000 |
commit | ec32cf41f916fc34c03d2844684631bee39005ad (patch) | |
tree | 0ecd4b3a8602ba76df3b9395eb6c71c350d510df /editsel.c |
Added copies of old numbered releases.0.02
Diffstat (limited to 'editsel.c')
-rw-r--r-- | editsel.c | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/editsel.c b/editsel.c new file mode 100644 index 0000000..7c64ece --- /dev/null +++ b/editsel.c @@ -0,0 +1,133 @@ +/* + + viDOOM - level editor for DOOM + + Copyright (C) 2000 Ian Cowburn (ianc@noddybox.demon.co.uk) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + ------------------------------------------------------------------------- + + Editor selection definitions + +*/ +static const char rcs_id[]="$Id$"; + +#include "config.h" +#include "globals.h" +#include "editvar.h" + + + +/* After all that hard work of making the Object type the only thing that + the top level selection code needs to worry about, the Multi edit mode + goes and throws a spanner in the works.... +*/ +void SetSelect_GENERIC(int i, int mode) +{ + Object *o; + + o=MapElem(map,i); + o->select=mode; +} + + +int TmpAddCurrent(void) +{ + if ((ListSize(selected)==0)&&(current!=-1)) + { + ListAppend(selected,¤t); + return(TRUE); + } + else + return(FALSE); +} + + +void ClearSelection(void) +{ + int *n; + Iterator i; + + TRACE; + + if (map) + { + if (current!=-1) + SetSelect(current,SELECT_NONE); + + i=ListIterator(selected); + + while(i) + { + n=IteratorData(i); + SetSelect(*n,SELECT_NONE); + i=IteratorNext(i); + } + } + + selected=ListEmpty(selected); + current=-1; +} + + +void ClearSelectionLeaveCurrent(void) +{ + int *n; + Iterator i; + + TRACE; + + if (map) + { + i=ListIterator(selected); + + while(i) + { + n=IteratorData(i); + SetSelect(*n,SELECT_NONE); + i=IteratorNext(i); + } + } + + selected=ListEmpty(selected); +} + + +void *SelHead(void) +{ + Iterator i; + int *f; + Object *o; + void *p; + + TRACE; + + i=ListIterator(selected); + p=NULL; + + if ((f=IteratorData(i))) + { + o=MapElem(map,*f); + p=o->data; + } + + IteratorClear(i); + + return(p); +} + + +/* END OF FILE */ |