Overview
Comment: | Implement rewrite_class_def (untested so far) |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
9f939634670e7b9798c8cd5b1ce80979 |
User & Date: | user on 2021-02-07 04:39:00 |
Other Links: | manifest | tags |
Context
2021-02-07
| ||
06:41 | Correct a typographical error in a comment in man6/heromesh.str check-in: f697a654f2 user: user tags: trunk | |
04:39 | Implement rewrite_class_def (untested so far) check-in: 9f93963467 user: user tags: trunk | |
00:16 | Implement load/import/export move lists. check-in: 9769459c6a user: user tags: trunk | |
Changes
Modified edit.c from [18ed2d8b41] to [5794ce4c6b].
︙ | ︙ | |||
22 23 24 25 26 27 28 29 30 31 32 33 34 35 | Uint8 img,dir; Value misc1,misc2,misc3; } MRU; #define MRUCOUNT 32 static MRU mru[MRUCOUNT]; static int curmru; static void redraw_editor(void) { char buf[32]; SDL_Rect r; int x,y; r.x=r.y=0; r.h=screen->h; | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | Uint8 img,dir; Value misc1,misc2,misc3; } MRU; #define MRUCOUNT 32 static MRU mru[MRUCOUNT]; static int curmru; static void rewrite_class_def(void) { Uint32 i,n; Uint8 cu[0x4000/8]; Uint8 mu[0x4000/8]; Object*o; long size=0; unsigned char*data=read_lump(FIL_LEVEL,LUMP_CLASS_DEF,&size); sqlite3_str*s=sqlite3_str_new(0); memset(cu,0,0x4000/8); memset(mu,0,0x4000/8); if(data && size) { for(i=0;i<size-3;) { n=data[i]|(data[i+1]<<8); if(!n) break; i+=2; while(i<size && data[i++]); cu[n/8]|=1<<(n&7); } i+=2; for(;i<size-3;) { n=data[i]|(data[i+1]<<8); n-=256; i+=2; while(i<size && data[i++]); if(n>=0) mu[n/8]|=1<<(n&7); } } free(data); for(i=0;i<nobjects;i++) if(o=objects[i]) { cu[o->class/8]|=1<<(o->class&7); #define DoMisc(a) \ if(o->a.t==TY_CLASS) { \ cu[o->a.u/8]|=1<<(o->a.u&7); \ } else if(o->a.t==TY_MESSAGE && o->a.u>=256) { \ mu[(o->a.u-256)/8]|=1<<(o->a.u&7); \ } DoMisc(misc1) DoMisc(misc2) DoMisc(misc3) #undef DoMisc } // Now write out the new data for(i=0;i<0x4000;i++) if(cu[i/8]&(1<<(i&7))) { sqlite3_str_appendchar(s,1,i&255); sqlite3_str_appendchar(s,1,i>>8); sqlite3_str_appendall(s,classes[i]->name); sqlite3_str_appendchar(s,1,0); } sqlite3_str_appendchar(s,2,0); for(i=0;i<0x4000;i++) if(mu[i/8]&(1<<(i&7))) { sqlite3_str_appendchar(s,1,i&255); sqlite3_str_appendchar(s,1,i>>8); sqlite3_str_appendall(s,messages[i]); sqlite3_str_appendchar(s,1,0); } // End of data size=sqlite3_str_length(s); data=sqlite3_str_finish(s); if(!size || !data) fatal("Error in string builder\n"); write_lump(FIL_LEVEL,LUMP_CLASS_DEF,size,data); free(data); } static void redraw_editor(void) { char buf[32]; SDL_Rect r; int x,y; r.x=r.y=0; r.h=screen->h; |
︙ | ︙ |