Index: class.doc ================================================================== --- class.doc +++ class.doc @@ -846,11 +846,14 @@ Resets the Arrived, Busy, Departed, Inertia, Moved, and UserSignal flags of all objects of the specified class to zero. If the class is -1, then all objects are flushed in this way, and during the input phase, it also skips the other phases similarly to IgnoreKey if the class is -1. -FlushObj ( obj -- ) ** +FlushObj ( -- ) ** + Resets this object's Arrived, Departed, Inertia, Moved, and UserSignal. + +,FlushObj ( obj -- ) ** Resets the Arrived, Busy, Departed, Inertia, Moved, and UserSignal flags of the specified object only. From ( -- obj ) The object which send the message to this object. In some cases, this Index: exec.c ================================================================== --- exec.c +++ exec.c @@ -1171,11 +1171,12 @@ case OP_DROP: StackReq(1,0); Pop(); break; case OP_DROP_D: StackReq(2,0); Pop(); Pop(); break; case OP_DUP: StackReq(1,2); t1=Pop(); Push(t1); Push(t1); break; case OP_EQ: StackReq(2,1); t2=Pop(); t1=Pop(); Push(NVALUE(v_equal(t1,t2)?1:0)); break; case OP_FLUSHCLASS: NoIgnore(); StackReq(1,0); t1=Pop(); if(t1.t==TY_CLASS) flush_class(t1.u); else if(t1.t==TY_NUMBER && t1.s==-1) flush_all(); else if(t1.t) Throw("Type mismatch"); break; - case OP_FLUSHOBJ: NoIgnore(); StackReq(1,0); i=v_object(Pop()); if(i!=VOIDLINK) flush_object(i); break; + case OP_FLUSHOBJ: NoIgnore(); flush_object(obj); break; + case OP_FLUSHOBJ_C: NoIgnore(); StackReq(1,0); i=v_object(Pop()); if(i!=VOIDLINK) flush_object(i); break; case OP_FOR: NoIgnore(); StackReq(3,1); t3=Pop(); t2=Pop(); t1=Pop(); ptr=v_for(code,ptr,t1,t2,t3); break; case OP_FROM: StackReq(0,1); Push(OVALUE(msgvars.from)); break; case OP_GE: StackReq(2,1); t2=Pop(); t1=Pop(); Push(NVALUE(v_unsigned_greater(t2,t1)?0:1)); break; case OP_GE_C: StackReq(2,1); t2=Pop(); t1=Pop(); Push(NVALUE(v_signed_greater(t2,t1)?0:1)); break; case OP_GOTO: ptr=code[ptr]; break; Index: instruc ================================================================== --- instruc +++ instruc @@ -198,11 +198,11 @@ .Create DelInventory Delta .,Destroy FlushClass -FlushObj +,FlushObj GetInventory HeightAt IgnoreKey .,IntMove ; move without initializing Inertia .,JumpTo Index: instruc.h ================================================================== --- instruc.h +++ instruc.h @@ -288,10 +288,11 @@ #define OP_DESTROY_C 34947 #define OP_DESTROY_D 41091 #define OP_DESTROY_CD 43139 #define OP_FLUSHCLASS 32900 #define OP_FLUSHOBJ 32901 +#define OP_FLUSHOBJ_C 34949 #define OP_GETINVENTORY 32902 #define OP_HEIGHTAT 32903 #define OP_IGNOREKEY 32904 #define OP_INTMOVE 32905 #define OP_INTMOVE_C 34953 @@ -431,11 +432,11 @@ {"FAROUT",8389421}, {"FFFFTT",8389399}, {"FLOATED",8389132}, {"FROG",8389383}, {"FlushClass",8421508}, -{"FlushObj",8421509}, +{"FlushObj",8487045}, {"From",8421482}, {"GLASS",8389379}, {"GLISSANT",8389419}, {"GetInventory",8421510}, {"HAWK",8389425}, Index: mbtofhm.c ================================================================== --- mbtofhm.c +++ mbtofhm.c @@ -6,10 +6,11 @@ // This program is part of Free Hero Mesh and is public domain. #include #include #include +#define HEROMESH_MAIN #include "names.h" #define fatal(...) do{ fprintf(stderr,__VA_ARGS__); exit(1); }while(0) // Pictures @@ -737,11 +738,11 @@ st=0; break; case 130: fprintf(fp," FlushClass"); st=0; break; case 131: - fprintf(fp," FlushObj"); + fprintf(fp," ,FlushObj"); st=0; break; case 132: fprintf(fp," SetInventory 5 MaxInventory"); st=0; break; case 133: