Overview
| Comment: | Implement rewrite_class_def (untested so far) |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
9f939634670e7b9798c8cd5b1ce80979 |
| User & Date: | user on 2021-02-07 04:39:00.528 |
| 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;
|
| ︙ | ︙ |