Free Hero Mesh

Check-in [ee231f02dd]
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:Start of implementation of the (Trigger) block (currently only syntax is implemented) to control timing/ordering of some events.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: ee231f02dd8043e24c660bd7cf413d102820eed1
User & Date: user on 2024-05-11 06:16:03
Other Links: manifest | tags
Context
2024-05-29
22:13
Make a few corrections to misc/compare/meshhero.doc. "Click to make several moves" had already been implemented, but this file incorrectly claimed that it didn't; the incorrect statement has been removed. No changes to code. Leaf check-in: e00ea7f335 user: user tags: trunk
2024-05-11
06:16
Start of implementation of the (Trigger) block (currently only syntax is implemented) to control timing/ordering of some events. check-in: ee231f02dd user: user tags: trunk
2023-10-31
23:36
Make control and middle button to draw lines from clicked location for helping with alignment. check-in: 382666e88a user: user tags: trunk
Changes

Modified class.c from [04b2a8af6c] to [572afd4230].

2927
2928
2929
2930
2931
2932
2933







2934
2935
2936
2937
2938
2939
2940
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947







+
+
+
+
+
+
+







          has_xy_input=1;
          nxttok();
          if(tokent!=TF_CLOSE) ParseError("Expected close parenthesis\n");
          break;
        case OP_DENSITY:
          parse_density_block();
          break;
        case OP_TRIGGER:
          nxttok();
          if(tokent!=TF_INT) ParseError("Number expected\n");
          trigmode=tokenv;
          nxttok();
          if(tokent!=TF_CLOSE) ParseError("Expected close parenthesis\n");
          break;
        default:
          ParseError("Invalid top level definition: %s\n",tokenstr);
      }
    } else {
      ParseError("Invalid top level definition\n");
    }
  }

Modified class.doc from [9a7008d58d] to [b9695758a6].

339
340
341
342
343
344
345



346
347
348
349
350
351
352
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355







+
+
+







  of creation; the (Order) block allows you to override this order.

(Synchronize <slot> <length> <speed>)
  Define an animation slot for synchronized animation. The slot number can
  be 0 to 7, the length is the number of images in the sequence, and the
  speed is the number of centiseconds between frames.

(Trigger <number>)
  Not defined yet. (TODO)

(Volume <number>)
  Define the maximum allowed volume for an object to move diagonally
  between two other objects. The default value is 10000.

($<name> <definitions...>)
  Define a class. See the section about class definitions for details.

Modified exec.c from [f9d077868e] to [191a372e4a].

40
41
42
43
44
45
46

47
48
49
50
51
52
53
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54







+







Value*array_data;
Uint16 ndeadanim;
DeadAnimation*deadanim;
Uint8 no_dead_anim;
Uint32 max_trigger;
Uint8 conn_option;
Sint32 gameover_score;
Uint32 trigmode;

typedef struct {
  Uint16 msg;
  Uint32 from;
  Value arg1,arg2,arg3;
} MessageVars;

Modified heromesh.h from [85047283e3] to [da2e133513].

324
325
326
327
328
329
330

331
332
333
334
335
336
337
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338







+







extern Value*array_data;
extern Uint16 ndeadanim;
extern DeadAnimation*deadanim;
extern Uint8 no_dead_anim;
extern Uint32 max_trigger;
extern Uint8 conn_option;
extern Sint32 gameover_score;
extern Uint32 trigmode;

const unsigned char*value_string_ptr(Value v);
void pfunlink(Uint32 n);
void pflink(Uint32 n);
Uint32 objalloc(Uint16 c);
void objtrash(Uint32 n);
void annihilate(void);