Rev 3789 | Rev 4119 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1677 | terminx | 1 | //------------------------------------------------------------------------- |
2 | /* |
||
3 | Copyright (C) 2010 EDuke32 developers and contributors |
||
4 | |||
5 | This file is part of EDuke32. |
||
6 | |||
7 | EDuke32 is free software; you can redistribute it and/or |
||
8 | modify it under the terms of the GNU General Public License version 2 |
||
9 | as published by the Free Software Foundation. |
||
10 | |||
11 | This program is distributed in the hope that it will be useful, |
||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
||
14 | |||
15 | See the GNU General Public License for more details. |
||
16 | |||
17 | You should have received a copy of the GNU General Public License |
||
18 | along with this program; if not, write to the Free Software |
||
19 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
||
20 | */ |
||
21 | //------------------------------------------------------------------------- |
||
22 | |||
23 | #ifndef __savegame_h__ |
||
24 | #define __savegame_h__ |
||
25 | |||
3789 | helixhorne | 26 | #ifdef LUNATIC |
27 | # define SV_MAJOR_VER 2 |
||
28 | #else |
||
29 | # define SV_MAJOR_VER 1 |
||
30 | #endif |
||
2483 | helixhorne | 31 | #define SV_MINOR_VER 3 |
2207 | helixhorne | 32 | |
1677 | terminx | 33 | #pragma pack(push,1) |
2207 | helixhorne | 34 | typedef struct |
35 | { |
||
36 | char headerstr[11]; |
||
37 | uint8_t majorver, minorver, ptrsize; |
||
38 | uint16_t bytever; |
||
39 | // 16 bytes |
||
40 | |||
41 | uint8_t comprthres; |
||
42 | uint8_t recdiffsp, diffcompress, synccompress; |
||
43 | // 4 bytes |
||
44 | |||
45 | int32_t reccnt, snapsiz; |
||
46 | // 8 bytes |
||
47 | |||
48 | char savename[22]; // should be of the same length as ud.savegame[i] |
||
49 | uint8_t numplayers, volnum, levnum, skill; |
||
50 | char boardfn[256]; // BMAX_PATH |
||
51 | // 282 bytes |
||
3975 | helixhorne | 52 | } savehead_t; |
1677 | terminx | 53 | #pragma pack(pop) |
54 | |||
3975 | helixhorne | 55 | EDUKE32_STATIC_ASSERT(sizeof(savehead_t) == 310); |
56 | |||
1677 | terminx | 57 | int32_t sv_updatestate(int32_t frominit); |
58 | int32_t sv_readdiff(int32_t fil); |
||
59 | uint32_t sv_writediff(FILE *fil); |
||
2207 | helixhorne | 60 | int32_t sv_loadheader(int32_t fil, int32_t spot, savehead_t *h); |
61 | int32_t sv_loadsnapshot(int32_t fil, int32_t spot, savehead_t *h); |
||
62 | int32_t sv_saveandmakesnapshot(FILE *fil, int8_t spot, int8_t recdiffsp, int8_t diffcompress, int8_t synccompress); |
||
1677 | terminx | 63 | void sv_freemem(); |
64 | int32_t G_SavePlayer(int32_t spot); |
||
65 | int32_t G_LoadPlayer(int32_t spot); |
||
2207 | helixhorne | 66 | int32_t G_LoadSaveHeaderNew(int32_t spot, savehead_t *saveh); |
67 | //int32_t G_LoadSaveHeader(char spot,struct savehead_ *saveh); |
||
1677 | terminx | 68 | void ReadSaveGameHeaders(void); |
2999 | helixhorne | 69 | void G_SavePlayerMaybeMulti(int32_t slot); |
70 | void G_LoadPlayerMaybeMulti(int32_t slot); |
||
2449 | helixhorne | 71 | |
72 | #ifdef YAX_ENABLE |
||
73 | extern void sv_postyaxload(void); |
||
74 | #endif |
||
75 | |||
3156 | helixhorne | 76 | // XXX: The 'bitptr' decl really belongs into gamedef.h, but we don't want to |
77 | // pull all of it in savegame.c? |
||
1677 | terminx | 78 | extern char *bitptr; |
3156 | helixhorne | 79 | extern uint8_t g_oldverSavegame[10]; |
1950 | helixhorne | 80 | |
81 | enum |
||
82 | { |
||
83 | P2I_BACK_BIT = 1, |
||
84 | P2I_ONLYNON0_BIT = 2, |
||
85 | |||
86 | P2I_FWD = 0, |
||
87 | P2I_BACK = 1, |
||
88 | |||
89 | P2I_FWD_NON0 = 0+2, |
||
90 | P2I_BACK_NON0 = 1+2, |
||
91 | }; |
||
3150 | helixhorne | 92 | void G_Util_PtrToIdx(void *ptr, int32_t count, const void *base, int32_t mode); |
93 | void G_Util_PtrToIdx2(void *ptr, int32_t count, size_t stride, const void *base, int32_t mode); |
||
1950 | helixhorne | 94 | |
1677 | terminx | 95 | #endif |