Overview
| Comment: | Change MoveItem to Uint16 and fix the encoders/decoders for future use (only numbers 8 to 255 are currently in use). |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
1aadd6299e7fc906d92c9ec94f0e53e2 |
| User & Date: | user on 2022-07-01 21:09:11.522 |
| Other Links: | manifest | tags |
Context
|
2022-07-02
| ||
| 16:14 | Implement -O switch to output private solutions on stdout. check-in: 169561bd42 user: user tags: trunk | |
|
2022-07-01
| ||
| 21:09 | Change MoveItem to Uint16 and fix the encoders/decoders for future use (only numbers 8 to 255 are currently in use). check-in: 1aadd6299e user: user tags: trunk | |
|
2022-06-30
| ||
| 06:37 | More improvements to PORTING file. check-in: 65b8239f8b user: user tags: trunk | |
Changes
Modified game.c
from [740d5e2168]
to [d17a145787].
| ︙ | ︙ | |||
40 41 42 43 44 45 46 |
static Uint8 inserting,saved_inserting;
static sqlite3_stmt*autowin;
static size_t dum_size; // not used by Free Hero Mesh, but needed by some C library functions.
int encode_move(FILE*fp,MoveItem v) {
// Encodes a single move and writes the encoded move to the file.
// Returns the number of bytes of the encoded move.
| > | | > > > > > | | > | > > > > > | 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 |
static Uint8 inserting,saved_inserting;
static sqlite3_stmt*autowin;
static size_t dum_size; // not used by Free Hero Mesh, but needed by some C library functions.
int encode_move(FILE*fp,MoveItem v) {
// Encodes a single move and writes the encoded move to the file.
// Returns the number of bytes of the encoded move.
if(v>=8 && v<256) {
fputc(v,fp);
return 1;
} else {
fatal("Unencodable move (%u)\n",(int)v);
}
}
int encode_move_list(FILE*fp) {
// Encodes the current replay list into the file; returns the number of bytes.
// Does not write a null terminator.
int i;
int c=0;
for(i=0;i<replay_count;i++) c+=encode_move(fp,replay_list[i]);
return c;
}
MoveItem decode_move(FILE*fp) {
// Decodes a single move from the file, and returns the move.
// Returns zero if there is no more moves.
int v=fgetc(fp);
if(v>=8 && v<256) {
return v;
} else if(v==EOF || !v) {
return 0;
} else {
fatal("Undecodable move (%u)\n",v);
}
}
int decode_move_list(FILE*fp) {
// Decodes a move list from the file, and stores it in replay_list and replay_count.
// Returns the number of moves (replay_count).
MoveItem v;
FILE*o;
|
| ︙ | ︙ |
Modified heromesh.h
from [87e56863d6]
to [bd543a863e].
| ︙ | ︙ | |||
316 317 318 319 320 321 322 | void annihilate(void); const char*execute_turn(int key); const char*init_level(void); void swap_world(void); // == game == | | | 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 | void annihilate(void); const char*execute_turn(int key); const char*init_level(void); void swap_world(void); // == game == typedef Uint16 MoveItem; extern MoveItem*replay_list; extern size_t replay_size; extern Uint16 replay_count,replay_pos,replay_mark; extern Uint8 solution_replay; extern char*best_list; extern Sint32 best_score; |
| ︙ | ︙ |