Free Hero Mesh

Check-in [c1e8833d15]
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 level selection in game play mode (not yet complete; needs to initialize the level too), and add some more keyboard commands to the class selection menu in the editor.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: c1e8833d15d4d50ba25d12721f7185b27a27d474
User & Date: user on 2020-11-22 04:29:23
Other Links: manifest | tags
Context
2020-11-24
00:45
Add a file for copying sounds from HEROFALL.EXE check-in: 043f25eb8d user: user tags: trunk
2020-11-22
04:29
Implement level selection in game play mode (not yet complete; needs to initialize the level too), and add some more keyboard commands to the class selection menu in the editor. check-in: c1e8833d15 user: user tags: trunk
02:05
Fix the level conversion/loading by changing the MRU logic slightly. check-in: 1939e893b0 user: user tags: trunk
Changes

Modified edit.c from [3d6313a0b5] to [59f741fea8].

279
280
281
282
283
284
285





















286
287
288
289
290
291

292
293
294
295
296
297
298
            break;
          case SDLK_RIGHT:
            for(i=0;i<imgcount-1;i++) if(img==imglist[i]) {
              img=imglist[i+1];
              goto redraw;
            }
            break;





















          default:
            j=ev.key.keysym.unicode;
            if(j=='$' || j==21) {
              namei=0;
              goto redraw;
            }

            if(j>32 && j<127 && namei<254) {
              name[namei++]=j;
              for(i=0;i<clcount;i++) {
                if(!sqlite3_strnicmp(name,classes[cllist[i]]->name,namei)) {
                  ev.button.button=1;
                  cl=cllist[i];
                  goto setclass;







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>






>







279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
            break;
          case SDLK_RIGHT:
            for(i=0;i<imgcount-1;i++) if(img==imglist[i]) {
              img=imglist[i+1];
              goto redraw;
            }
            break;
          case SDLK_UP:
            namei=0;
            for(i=1;i<clcount;i++) if(cl==cllist[i]) {
              cl=cllist[i-1];
              goto setclass;
            }
            break;
          case SDLK_DOWN:
            namei=0;
            if(!cl) {
              cl=*cllist;
              goto setclass;
            }
            for(i=0;i<clcount-1;i++) if(cl==cllist[i]) {
              cl=cllist[i+1];
              goto setclass;
            }
            break;
          case SDLK_RETURN:
            add_mru(cl,img);
            return;
          default:
            j=ev.key.keysym.unicode;
            if(j=='$' || j==21) {
              namei=0;
              goto redraw;
            }
            if(j==27) return;
            if(j>32 && j<127 && namei<254) {
              name[namei++]=j;
              for(i=0;i<clcount;i++) {
                if(!sqlite3_strnicmp(name,classes[cllist[i]]->name,namei)) {
                  ev.button.button=1;
                  cl=cllist[i];
                  goto setclass;

Modified game.c from [adfd260a0a] to [7106f2aed5].

69
70
71
72
73
74
75



76
77
78
79
80
81
82

static int game_command(int prev,int cmd,int number,int argc,sqlite3_stmt*args,void*aux) {
  switch(cmd) {
    case '\' ': // Play a move
      return number;
    case '^E': // Edit
      return -2;



    case '^Q': // Quit
      return -1;
    default:
      return prev;
  }
}








>
>
>







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

static int game_command(int prev,int cmd,int number,int argc,sqlite3_stmt*args,void*aux) {
  switch(cmd) {
    case '\' ': // Play a move
      return number;
    case '^E': // Edit
      return -2;
    case '^L': // Select level
      load_level(number);
      return 1;
    case '^Q': // Quit
      return -1;
    default:
      return prev;
  }
}