Rev 3150 | Rev 3789 | 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 | |||
2207 | helixhorne | 26 | #define SV_MAJOR_VER 1 |
2483 | helixhorne | 27 | #define SV_MINOR_VER 3 |
2207 | helixhorne | 28 | |
1677 | terminx | 29 | #pragma pack(push,1) |
2207 | helixhorne | 30 | typedef struct |
31 | { |
||
32 | char headerstr[11]; |
||
33 | uint8_t majorver, minorver, ptrsize; |
||
34 | uint16_t bytever; |
||
35 | // 16 bytes |
||
36 | |||
37 | uint8_t comprthres; |
||
38 | uint8_t recdiffsp, diffcompress, synccompress; |
||
39 | // 4 bytes |
||
40 | |||
41 | int32_t reccnt, snapsiz; |
||
42 | // 8 bytes |
||
43 | |||
44 | char savename[22]; // should be of the same length as ud.savegame[i] |
||
45 | uint8_t numplayers, volnum, levnum, skill; |
||
46 | char boardfn[256]; // BMAX_PATH |
||
47 | // 282 bytes |
||
48 | } savehead_t; // 310 bytes |
||
1677 | terminx | 49 | #pragma pack(pop) |
50 | |||
51 | int32_t sv_updatestate(int32_t frominit); |
||
52 | int32_t sv_readdiff(int32_t fil); |
||
53 | uint32_t sv_writediff(FILE *fil); |
||
2207 | helixhorne | 54 | int32_t sv_loadheader(int32_t fil, int32_t spot, savehead_t *h); |
55 | int32_t sv_loadsnapshot(int32_t fil, int32_t spot, savehead_t *h); |
||
56 | int32_t sv_saveandmakesnapshot(FILE *fil, int8_t spot, int8_t recdiffsp, int8_t diffcompress, int8_t synccompress); |
||
1677 | terminx | 57 | void sv_freemem(); |
58 | int32_t G_SavePlayer(int32_t spot); |
||
59 | int32_t G_LoadPlayer(int32_t spot); |
||
2207 | helixhorne | 60 | int32_t G_LoadSaveHeaderNew(int32_t spot, savehead_t *saveh); |
61 | //int32_t G_LoadSaveHeader(char spot,struct savehead_ *saveh); |
||
1677 | terminx | 62 | void ReadSaveGameHeaders(void); |
2999 | helixhorne | 63 | void G_SavePlayerMaybeMulti(int32_t slot); |
64 | void G_LoadPlayerMaybeMulti(int32_t slot); |
||
2449 | helixhorne | 65 | |
66 | #ifdef YAX_ENABLE |
||
67 | extern void sv_postyaxload(void); |
||
68 | #endif |
||
69 | |||
3156 | helixhorne | 70 | // XXX: The 'bitptr' decl really belongs into gamedef.h, but we don't want to |
71 | // pull all of it in savegame.c? |
||
1677 | terminx | 72 | extern char *bitptr; |
3156 | helixhorne | 73 | extern uint8_t g_oldverSavegame[10]; |
1950 | helixhorne | 74 | |
75 | enum |
||
76 | { |
||
77 | P2I_BACK_BIT = 1, |
||
78 | P2I_ONLYNON0_BIT = 2, |
||
79 | |||
80 | P2I_FWD = 0, |
||
81 | P2I_BACK = 1, |
||
82 | |||
83 | P2I_FWD_NON0 = 0+2, |
||
84 | P2I_BACK_NON0 = 1+2, |
||
85 | }; |
||
3150 | helixhorne | 86 | void G_Util_PtrToIdx(void *ptr, int32_t count, const void *base, int32_t mode); |
87 | void G_Util_PtrToIdx2(void *ptr, int32_t count, size_t stride, const void *base, int32_t mode); |
||
1950 | helixhorne | 88 | |
1677 | terminx | 89 | #endif |