Free Hero Mesh

Check-in [1a2fee8a44]
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:Implement a key binding command to record the solution even if auto recording solutions is not enabled.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 1a2fee8a44d892eea85c755ed1d5c546244e3647
User & Date: user on 2021-05-23 02:22:04
Other Links: manifest | tags
Context
2021-05-23
20:24
Implement the "portable app" mode. check-in: 3d7617dc1f user: user tags: trunk
02:22
Implement a key binding command to record the solution even if auto recording solutions is not enabled. check-in: 1a2fee8a44 user: user tags: trunk
2021-05-22
23:10
Fix documentation of CLASS_DATA function check-in: ad65a30a4b user: user tags: trunk
Changes

Modified bindings.doc from [5b9a298076] to [85737cf87e].

68
69
70
71
72
73
74



75
76
77
78
79
80
81

'^I'
  Toggle the inventory/move-list display.

'^M'
  Set the replay mark position.




'^T'
  Display the level title popup.

'^d' <location>
  Display the pop-up help text of the object at the location.

'^g'







>
>
>







68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84

'^I'
  Toggle the inventory/move-list display.

'^M'
  Set the replay mark position.

'^S'
  If the level is in a won state, record the solution.

'^T'
  Display the level title popup.

'^d' <location>
  Display the pop-up help text of the object at the location.

'^g'

Modified default.heromeshrc from [1fdde48f53] to [71d4d49167].

104
105
106
107
108
109
110

111
112
113
114
115
116
117
?.gameKey.alt.T: 'TAB
?.gameKey.alt.Z: 'CTRL

! Game key bindings
?.gameKey.ctrl.E: ^E
?.gameKey.ctrl.I: select 'mi',:import_move_list;
?.gameKey.ctrl.Q: ^Q

?.gameKey.ctrl.T: ^T
?.gameKey.ctrl.X: select 'mx',:export_move_list;
?.gameClick.right: ^o
?.gameClick.middle: ^d
?.gameKey.kp_enter: =0
?.gameKey.escape: =0
?.gameKey.f1: +1







>







104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
?.gameKey.alt.T: 'TAB
?.gameKey.alt.Z: 'CTRL

! Game key bindings
?.gameKey.ctrl.E: ^E
?.gameKey.ctrl.I: select 'mi',:import_move_list;
?.gameKey.ctrl.Q: ^Q
?.gameKey.ctrl.S: ^S
?.gameKey.ctrl.T: ^T
?.gameKey.ctrl.X: select 'mx',:export_move_list;
?.gameClick.right: ^o
?.gameClick.middle: ^d
?.gameKey.kp_enter: =0
?.gameKey.escape: =0
?.gameKey.f1: +1

Modified game.c from [82e0e69943] to [775aabf4a7].

28
29
30
31
32
33
34


35
36
37
38
39
40
41
static Uint8*inputs;
static int inputs_size,inputs_count;
static Uint8 side_mode=255;
static Uint8 should_record_solution;
static Uint8 replay_speed;
static Uint8 replay_time;



static void setup_game(void) {
  const char*v;
  optionquery[1]=Q_showInventory;
  v=xrm_get_resource(resourcedb,optionquery,optionquery,2)?:"";
  side_mode=boolxrm(v,1);
  optionquery[1]=Q_replaySpeed;
  v=xrm_get_resource(resourcedb,optionquery,optionquery,2)?:"";







>
>







28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
static Uint8*inputs;
static int inputs_size,inputs_count;
static Uint8 side_mode=255;
static Uint8 should_record_solution;
static Uint8 replay_speed;
static Uint8 replay_time;

static void record_solution(void);

static void setup_game(void) {
  const char*v;
  optionquery[1]=Q_showInventory;
  v=xrm_get_resource(resourcedb,optionquery,optionquery,2)?:"";
  side_mode=boolxrm(v,1);
  optionquery[1]=Q_replaySpeed;
  v=xrm_get_resource(resourcedb,optionquery,optionquery,2)?:"";
724
725
726
727
728
729
730



731
732
733
734
735
736
737
      side_mode^=1;
      return prev;
    case '^M': // Mark replay position
      replay_mark=replay_pos+inputs_count;
      return prev;
    case '^Q': // Quit
      return -1;



    case '^T': // Show title
      modal_draw_popup(level_title);
      return prev;
    case '^d': // Describe object
      describe_at(number-65);
      return prev;
    case '^g': // Display global variables







>
>
>







726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
      side_mode^=1;
      return prev;
    case '^M': // Mark replay position
      replay_mark=replay_pos+inputs_count;
      return prev;
    case '^Q': // Quit
      return -1;
    case '^S': // Save solution
      if(gameover==1) record_solution();
      return 1;
    case '^T': // Show title
      modal_draw_popup(level_title);
      return prev;
    case '^d': // Describe object
      describe_at(number-65);
      return prev;
    case '^g': // Display global variables