Overview
| Comment: | Change FlushObj to ,FlushObj to make the instruction set more consistent |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
7a253eb1d0bdb1be2fb49018b5ec2709 |
| User & Date: | user on 2020-12-17 03:29:36.636 |
| 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;
|
| ︙ | ︙ |