Overview
| Comment: | Use the move encoding functions in the level import function. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
5463756bc95bd9734aee106ecad24761 |
| User & Date: | user on 2022-06-28 04:45:10.976 |
| Other Links: | manifest | tags |
Context
|
2022-06-28
| ||
| 06:49 | Use the new user state format in the level table implementation. check-in: 98625fd224 user: user tags: trunk | |
| 04:45 | Use the move encoding functions in the level import function. check-in: 5463756bc9 user: user tags: trunk | |
| 03:57 | Some more changes in game.c and in documentation, to work with the new move list encoding/decoding functions. check-in: c295ff21b6 user: user tags: trunk | |
Changes
Modified edit.c
from [6d33b70e63]
to [6dfe3afa21].
| ︙ | ︙ | |||
25 26 27 28 29 30 31 | Value misc1,misc2,misc3; } MRU; #define MRUCOUNT 32 static MRU mru[MRUCOUNT]; static int curmru; static char*solution_data; | | | | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
Value misc1,misc2,misc3;
} MRU;
#define MRUCOUNT 32
static MRU mru[MRUCOUNT];
static int curmru;
static char*solution_data;
static size_t solution_length;
static inline void discard_solution(void) {
if(solution_data) {
free(solution_data);
solution_data=0;
solution_length=0;
}
}
static void rewrite_class_def(void) {
Uint32 i,n;
|
| ︙ | ︙ | |||
1006 1007 1008 1009 1010 1011 1012 | char d=0; int x,y; Object*o; FILE*fp; size_t size=0; char*buf=0; char*p; | | | 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 |
char d=0;
int x,y;
Object*o;
FILE*fp;
size_t size=0;
char*buf=0;
char*p;
FILE*sol=0;
Value v;
if(!cmd || !*cmd) return;
fp=main_options['i']?stdin:popen(cmd,"r");
if(!fp) {
screen_message("Cannot open pipe");
return;
}
|
| ︙ | ︙ | |||
1113 1114 1115 1116 1117 1118 1119 |
levelstrings=realloc(levelstrings,(nlevelstrings+1)*sizeof(unsigned char*));
if(!levelstrings) fatal("Allocation failed\n");
levelstrings[nlevelstrings++]=import_string(p+1);
}
break;
case '\'':
if(!sol) {
| | > | | | 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 |
levelstrings=realloc(levelstrings,(nlevelstrings+1)*sizeof(unsigned char*));
if(!levelstrings) fatal("Allocation failed\n");
levelstrings[nlevelstrings++]=import_string(p+1);
}
break;
case '\'':
if(!sol) {
sol=open_memstream(&solution_data,&solution_length);
if(!sol) fatal("Allocation failed\n");
fwrite("\0\0",1,3,sol); // append level version (will be overwritten later) and flags
}
p=strchr(buf,' ');
if(p) {
*p=0;
p=import_numbers(p+1,&y,0);
if(!p || *p) goto bad;
} else {
y=1;
}
for(x=8;x<256;x++) {
if(heromesh_key_names[x] && !strcmp(buf+1,heromesh_key_names[x])) {
while(y-->0) encode_move(sol,x);
break;
}
}
if(x==256) goto bad;
break;
case '=':
if(main_options['i']) goto done;
|
| ︙ | ︙ | |||
1150 1151 1152 1153 1154 1155 1156 |
}
}
done:
free(buf);
if(!main_options['i']) pclose(fp);
generation_number_inc=0;
if(sol) {
| < | | 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 |
}
}
done:
free(buf);
if(!main_options['i']) pclose(fp);
generation_number_inc=0;
if(sol) {
fclose(sol);
if(!solution_data) fatal("Allocation failed");
}
}
static void new_level(void) {
sqlite3_stmt*st;
int i;
|
| ︙ | ︙ |