Free Hero Mesh

Check-in [1d89b3ab66]
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:Add possibility to adjust replay speed at run time.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 1d89b3ab6654f25bd5e676880dec07b86ca743dd
User & Date: user on 2021-09-12 04:37:01
Other Links: manifest | tags
Context
2021-09-18
00:23
Implement some mouse-based controls in level strings editor. check-in: 0cad524186 user: user tags: trunk
2021-09-12
04:37
Add possibility to adjust replay speed at run time. check-in: 1d89b3ab66 user: user tags: trunk
00:57
Implement bizarro editing. check-in: 6b326d94b8 user: user tags: trunk
Changes

Modified TODO from [d20541f055] to [88c718bc67].

8
9
10
11
12
13
14

15
16
17
18
19
20
21
* Game engine features
  * Multiple connected objects moving as a unit
  * String data
  * A ,PopUp command to use a popup with arguments starting from a mark
  * "Goto message" instruction (?)
  * Returning a class from COLLIDE/COLLIDEBY to transform
  * Coordinate input (may be suitable for some kind of games)

* Editor
  * Mouse dragging
  * Level index editor
  * Bizarro world
  * Selection rectangles
* Table of contents for levels
  * Can define your own columns







>







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
* Game engine features
  * Multiple connected objects moving as a unit
  * String data
  * A ,PopUp command to use a popup with arguments starting from a mark
  * "Goto message" instruction (?)
  * Returning a class from COLLIDE/COLLIDEBY to transform
  * Coordinate input (may be suitable for some kind of games)
  * A way to change the order of objects execution
* Editor
  * Mouse dragging
  * Level index editor
  * Bizarro world
  * Selection rectangles
* Table of contents for levels
  * Can define your own columns

Modified bindings.doc from [f5d84d82bf] to [a316f7d56f].

105
106
107
108
109
110
111




112
113
114
115
116
117
118
'ml' <blob>
  Load a move list from a SQL blob.

'mx' <command>
  Export a move list. The argument is a operating system command that
  will receive the move list (in the same format as above) on stdin.






=== Editor commands ===

'^N'
  Add a new level (after the last one). The new level has the same
  dimensions as the current level, but contains no objects or strings,
  and the title is set to "New Level".







>
>
>
>







105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
'ml' <blob>
  Load a move list from a SQL blob.

'mx' <command>
  Export a move list. The argument is a operating system command that
  will receive the move list (in the same format as above) on stdin.

'rs' <number>
  Adjust replay speed by the specified number (negative to make faster, or
  positive to make slower; zero leaves it unchanged).


=== Editor commands ===

'^N'
  Add a new level (after the last one). The new level has the same
  dimensions as the current level, but contains no objects or strings,
  and the title is set to "New Level".

Modified default.heromeshrc from [a8c6aa6da8] to [b7279ec6a0].

125
126
127
128
129
130
131


132
133
134
135
136
137
138
?.gameKey.f5: ^M
?.gameKey.f6: ^<
?.gameKey.f7: ^>
?.gameKey.f8: ^s
?.gameKey.tab: ^I
?.gameKey.alt.G: ^g
?.gameKey.alt.P: ^p



! Editor key bindings
?.editKey.1: select 'mr',0;
?.editKey.2: select 'mr',1;
?.editKey.3: select 'mr',2;
?.editKey.4: select 'mr',3;
?.editKey.5: select 'mr',4;







>
>







125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
?.gameKey.f5: ^M
?.gameKey.f6: ^<
?.gameKey.f7: ^>
?.gameKey.f8: ^s
?.gameKey.tab: ^I
?.gameKey.alt.G: ^g
?.gameKey.alt.P: ^p
?.gameKey.alt.leftbracket: select 'rs',-5;
?.gameKey.alt.rightbracket: select 'rs',+5;

! Editor key bindings
?.editKey.1: select 'mr',0;
?.editKey.2: select 'mr',1;
?.editKey.3: select 'mr',2;
?.editKey.4: select 'mr',3;
?.editKey.5: select 'mr',4;

Modified game.c from [012a2779dc] to [63ee4dfd40].

778
779
780
781
782
783
784





785
786
787
788
789
790
791
      if(replay_pos) begin_level(level_id);
      do_load_moves(args);
      return 1;
    case 'mx': // Move list export
      if(argc<2) break;
      do_export_moves(sqlite3_column_text(args,1));
      return 0;





    default:
      return prev;
  }
}

static void set_caption(void) {
  const char*r;







>
>
>
>
>







778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
      if(replay_pos) begin_level(level_id);
      do_load_moves(args);
      return 1;
    case 'mx': // Move list export
      if(argc<2) break;
      do_export_moves(sqlite3_column_text(args,1));
      return 0;
    case 'rs': // Replay speed
      number+=replay_speed;
      if(number<1) number=1; else if(number>255) number=255;
      replay_speed=number;
      return prev;
    default:
      return prev;
  }
}

static void set_caption(void) {
  const char*r;