Change: Clear In object Flag. If a class is created within an object it is not relevant.
#PUSH !b // save obj_flag #PUSH !Zb // save current_dep #PUSH !Zf // save the super_class_count #SET B$ (!b | 2) // set flag to in_class // we want to strip in in-object flag. This will get restored when // the class is ended. When a class is defined it is not relevant if // it is in an object or not. #SET B$ (!b & 14) // set flag to not in_class (remove bit 0) #SET ZB$ 0 // based on atomic class object #IF ( (!b & 1) = 0 ) // are we NOT in a create_object? #IFDEF !4.AGG // bump dep number by already #SET ZB$ !4.AGG // defined sub objects #ENDIF #ENDIF #SET ZF$ !Zb // save the super_class_count #PUSH !Zi // save current sub object count #SET ZI$ 0 // and init for new class #PUSH !x // save old property index #SET X$ 0 //init to first array index# (0) #SPUSH // save the old class name #SET $$ !1 // retain the name of the class #IFDEF U_!1 // if the new class id has already #ELSE // been defined, dont bother Global_variable INTEGER U_!1 // else put it into a int of that name #ENDIF #DATA // wind up the stream #IFDEF !4 #DPUSH !4 #ELSE #DPUSH U_!4 // based upon #ENDIF #IF (!0<5) #DPUSH |CI0 // no colors defined, use default #ELSE #DPUSH !5 // else do what they say #ENDIF #IF (!0<6) #DPUSH |CI0 // no colors defined, use default #ELSE #DPUSH !6 // else do what they say #ENDIF #IF (!0=7) // if parameter used, this will be #DPUSH |CS"!7" // the name of a 'C' function. #ELSE #DPUSH |CS"" // else inherit one from the parent #ENDIF !A [] CREATE$CLASS U_!1 |VL // let 'er rip