Free Hero Mesh

Check-in [bd67743bfa]
Login
This is a mirror of the main repository for Free Hero Mesh. New tickets and changes will not be accepted at this mirror.
Overview
Comment:Fix a mistake in mbtofhm.c, and document ImageSeq and ImageLoop (presumably, they were used in the MESH:Hero engine before Animate was implemented; a few puzzle sets use them, though; in future they will also be implemented in Free Hero Mesh)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: bd67743bfa08f8252313d3590b90d34697d5b3a1
User & Date: user on 2022-12-27 07:07:14
Other Links: manifest | tags
Context
2023-01-01
05:21
Some improvements in PORTING file. check-in: 97e5146d26 user: user tags: trunk
2022-12-27
07:07
Fix a mistake in mbtofhm.c, and document ImageSeq and ImageLoop (presumably, they were used in the MESH:Hero engine before Animate was implemented; a few puzzle sets use them, though; in future they will also be implemented in Free Hero Mesh) check-in: bd67743bfa user: user tags: trunk
2022-12-07
07:16
Implement CONFIG_FUNCTION_ASK_TEXT (full code page capability is not implemented in this function; this may be fixed in future) check-in: 091fa5cd59 user: user tags: trunk
Changes

Modified TODO from [2f82fa955d] to [31818fb982].

42
43
44
45
46
47
48

49
50
51
52
53
54
55
* Composite puzzle set format (implemented)
  * Optional hypertext help
  * Compressed class definitions (?)
* Option to auto display level titles
* Option to use a separate solution file
* Multiuser scoring within one computer system (optional capability)
* Launcher menu (optional; separate program)

* Testing
  * Bizarro world
  * Connection movement (it is partially tested, already)
  * Sweep, SweepEx, HitMe
  * Overriding order of execution (partially tested)
  * Returning classes/objects from COLLIDEBY
* Conversion from other games







>







42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
* Composite puzzle set format (implemented)
  * Optional hypertext help
  * Compressed class definitions (?)
* Option to auto display level titles
* Option to use a separate solution file
* Multiuser scoring within one computer system (optional capability)
* Launcher menu (optional; separate program)
* Implement the (obsolete?) ImageSeq and ImageLoop commands (used in DESERT3)
* Testing
  * Bizarro world
  * Connection movement (it is partially tested, already)
  * Sweep, SweepEx, HitMe
  * Overriding order of execution (partially tested)
  * Returning classes/objects from COLLIDEBY
* Conversion from other games

Modified mbtofhm.c from [640a4cf4de] to [e7ca6fecc8].

305
306
307
308
309
310
311

312
313
314

315
316
317
318
319
320
321
  j=fgetc(stdin);
  j|=fgetc(stdin)<<8;
  class[id]->nsubslbl=j;
  fread(Allocate(class[id]->subslbl,10*j),j,10,stdin);
  fread(buf,1,2,stdin);
  k=buf[0]|(buf[1]<<8);
  Allocate(class[id]->subscode,k<<1);

  class[id]->subscode[0]=i;
  class[id]->subscode[1]=j;
  fread(class[id]->subscode+2,2,k-1,stdin);

  j=fgetc(stdin);
  j|=fgetc(stdin)<<8;
  class[id]->nmsgslbl=j;
  fread(Allocate(class[id]->msgslbl,10*j),j,10,stdin);
  class[id]->nmsgs=0;
  class[id]->msgscode=0;
  for(;;) {







>
|
|
|
>







305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
  j=fgetc(stdin);
  j|=fgetc(stdin)<<8;
  class[id]->nsubslbl=j;
  fread(Allocate(class[id]->subslbl,10*j),j,10,stdin);
  fread(buf,1,2,stdin);
  k=buf[0]|(buf[1]<<8);
  Allocate(class[id]->subscode,k<<1);
  if(k) {
    class[id]->subscode[0]=buf[0];
    class[id]->subscode[1]=buf[1];
    fread(class[id]->subscode+2,2,k-1,stdin);
  }
  j=fgetc(stdin);
  j|=fgetc(stdin)<<8;
  class[id]->nmsgslbl=j;
  fread(Allocate(class[id]->msgslbl,10*j),j,10,stdin);
  class[id]->nmsgs=0;
  class[id]->msgscode=0;
  for(;;) {

Modified misc/mbform.doc from [810ca18dc0] to [aa140ea55a].

381
382
383
384
385
386
387
388

389
390

391
392
393
394
395
396
397

[105/1] If. Second byte is zero for block-if or one for inline-if. The
next word is the number of words to skip (including the count itself) if
the condition is false.

[106] Else

[107/3] ImageSeq (seems to do nothing?)


[108/3] ImageLoop (seems to do nothing?)


[109] PopUp. Values taken from the stack is one plus the minor code.

[110/2] JumpTo(Self, ...)

[111/3] JumpTo








|
>

|
>







381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399

[105/1] If. Second byte is zero for block-if or one for inline-if. The
next word is the number of words to skip (including the count itself) if
the condition is false.

[106] Else

[107/3] ImageSeq (seems to be a obsolete variant of Animate, for animations
that play only once)

[108/3] ImageLoop (seems to be a obsolete variant of Animate, for looping
animations)

[109] PopUp. Values taken from the stack is one plus the minor code.

[110/2] JumpTo(Self, ...)

[111/3] JumpTo