Overview
Comment: | Change FlushObj to ,FlushObj to make the instruction set more consistent |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
7a253eb1d0bdb1be2fb49018b5ec2709 |
User & Date: | user on 2020-12-17 03:29:36 |
Other Links: | manifest | tags |
Context
2020-12-17
| ||
03:39 | Implement removing quiz text check-in: 3427b010ff user: user tags: trunk | |
03:29 | Change FlushObj to ,FlushObj to make the instruction set more consistent check-in: 7a253eb1d0 user: user tags: trunk | |
03:20 | Correct writes to standard variables of other objects check-in: a7e5fd6129 user: user tags: trunk | |
Changes
Modified class.doc from [9a693e5208] to [6e4182cde7].
︙ | ︙ | |||
844 845 846 847 848 849 850 | FlushClass ( class -- ) ** 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. | > > > | | 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 | FlushClass ( class -- ) ** 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 ( -- ) ** 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 will be zero instead of a valid object. |
︙ | ︙ |
Modified exec.c from [03329d01c7] to [873b6b076a].
︙ | ︙ | |||
1169 1170 1171 1172 1173 1174 1175 | case OP_DONE_E: StackReq(1,0); if(v_bool(Pop())) o->oflags|=OF_DONE; else o->oflags&=~OF_BUSY; break; case OP_DONE_EC: StackReq(2,0); SetFlagOf(OF_DONE); break; 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; | > | | 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 | case OP_DONE_E: StackReq(1,0); if(v_bool(Pop())) o->oflags|=OF_DONE; else o->oflags&=~OF_BUSY; break; case OP_DONE_EC: StackReq(2,0); SetFlagOf(OF_DONE); break; 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(); 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; case OP_GT: StackReq(2,1); t2=Pop(); t1=Pop(); Push(NVALUE(v_unsigned_greater(t1,t2)?1:0)); break; case OP_GT_C: StackReq(2,1); t2=Pop(); t1=Pop(); Push(NVALUE(v_signed_greater(t1,t2)?1:0)); break; |
︙ | ︙ |
Modified instruc from [ad08ada1fc] to [651dfa2b24].
︙ | ︙ | |||
196 197 198 199 200 201 202 | BroadcastSum ; Broadcast, but result is sum of return values BroadcastSumEx .Create DelInventory Delta .,Destroy FlushClass | | | 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 | BroadcastSum ; Broadcast, but result is sum of return values BroadcastSumEx .Create DelInventory Delta .,Destroy FlushClass ,FlushObj GetInventory HeightAt IgnoreKey .,IntMove ; move without initializing Inertia .,JumpTo ,Loc ; same as: Xloc Yloc LocateMe |
︙ | ︙ |
Modified instruc.h from [5b4b106152] to [ebbc66b70f].
︙ | ︙ | |||
286 287 288 289 290 291 292 293 294 295 296 297 298 299 | #define OP_DELTA 32898 #define OP_DESTROY 32899 #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_GETINVENTORY 32902 #define OP_HEIGHTAT 32903 #define OP_IGNOREKEY 32904 #define OP_INTMOVE 32905 #define OP_INTMOVE_C 34953 #define OP_INTMOVE_D 41097 #define OP_INTMOVE_CD 43145 | > | 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 | #define OP_DELTA 32898 #define OP_DESTROY 32899 #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 #define OP_INTMOVE_D 41097 #define OP_INTMOVE_CD 43145 |
︙ | ︙ | |||
429 430 431 432 433 434 435 | {"EditorHelp",8683639}, {"F",9437192}, {"FAROUT",8389421}, {"FFFFTT",8389399}, {"FLOATED",8389132}, {"FROG",8389383}, {"FlushClass",8421508}, | | | 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 | {"EditorHelp",8683639}, {"F",9437192}, {"FAROUT",8389421}, {"FFFFTT",8389399}, {"FLOATED",8389132}, {"FROG",8389383}, {"FlushClass",8421508}, {"FlushObj",8487045}, {"From",8421482}, {"GLASS",8389379}, {"GLISSANT",8389419}, {"GetInventory",8421510}, {"HAWK",8389425}, {"HEARTBEAT",8389407}, {"HIT",8389134}, |
︙ | ︙ |
Modified mbtofhm.c from [ea176bca7b] to [443bde1bde].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #if 0 gcc -s -O2 -o ./mbtofhm -Wno-unused-result mbtofhm.c exit #endif // This program is part of Free Hero Mesh and is public domain. #include <stdio.h> #include <stdlib.h> #include <string.h> #include "names.h" #define fatal(...) do{ fprintf(stderr,__VA_ARGS__); exit(1); }while(0) // Pictures static unsigned char*pict; static unsigned short*picalloc; | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #if 0 gcc -s -O2 -o ./mbtofhm -Wno-unused-result mbtofhm.c exit #endif // This program is part of Free Hero Mesh and is public domain. #include <stdio.h> #include <stdlib.h> #include <string.h> #define HEROMESH_MAIN #include "names.h" #define fatal(...) do{ fprintf(stderr,__VA_ARGS__); exit(1); }while(0) // Pictures static unsigned char*pict; static unsigned short*picalloc; |
︙ | ︙ | |||
735 736 737 738 739 740 741 | case 129: SubOpcode("WinLevel","LocateMe","IgnoreKey","Misc1 Misc2 Misc3 (PopUp 2)",";"); st=0; break; case 130: fprintf(fp," FlushClass"); st=0; break; case 131: | | | 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 | case 129: SubOpcode("WinLevel","LocateMe","IgnoreKey","Misc1 Misc2 Misc3 (PopUp 2)",";"); st=0; break; case 130: fprintf(fp," FlushClass"); st=0; break; case 131: fprintf(fp," ,FlushObj"); st=0; break; case 132: fprintf(fp," SetInventory 5 MaxInventory"); st=0; break; case 133: fprintf(fp," DelInventory"); st=0; break; |
︙ | ︙ |