ref: 54bb991f273c0f4daff122226eec8a11e3f894be
parent: 21f6a1501d32f541673f8226d4b2292aef920c2b
author: Jacob Moody <moody@posixcafe.org>
date: Sun Jan 22 23:52:49 EST 2023
saves work now
--- a/p_spec.h
+++ b/p_spec.h
@@ -461,9 +461,12 @@
ASTE_TERMINATING
} aste_t;
+#pragma pack on
+
typedef struct acs_s acs_t;
typedef struct acsInfo_s acsInfo_t;
+
struct acsInfo_s
{
int number;
@@ -494,6 +497,8 @@
int script; /* Script number on target map */
byte args[4]; /* Padded to 4 for alignment */
} acsstore_t;
+
+#pragma pack off
void P_LoadACScripts(int lump);
boolean P_StartACS(int number, int map, byte *args, mobj_t *activator, line_t *line, int side);
--- a/sv_save.c
+++ b/sv_save.c
@@ -270,12 +270,12 @@
// CODE --------------------------------------------------------------------
-static inline byte GET_BYTE (void)
+static byte GET_BYTE (void)
{
return *SavePtr++;
}
-static inline int16_t GET_WORD (void)
+static int16_t GET_WORD (void)
{
uint16_t val = READ_INT16(SavePtr);
INCR_INT16(SavePtr);
@@ -282,7 +282,7 @@
return (int16_t) val;
}
-static inline int32_t GET_LONG (void)
+static int32_t GET_LONG (void)
{
uint32_t val = READ_INT32(SavePtr);
INCR_INT32(SavePtr);
--- a/sv_save.h
+++ b/sv_save.h
@@ -11,11 +11,7 @@
#ifndef __SAVE_DEFS
#define __SAVE_DEFS
-#ifndef _DOSSAVE_COMPAT
-#define __compat_doshexen
-#else
-#define __compat_doshexen __attribute__((__packed__))
-#endif
+#pragma pack on
typedef struct
{
@@ -69,7 +65,7 @@
short tid;
byte special;
byte args[5];
-} __compat_doshexen save_mobj_t;
+} save_mobj_t;
#if !(defined(VERSION10_WAD) || defined(_DOSSAVE_COMPAT))
/* make sure the struct is of 176 bytes size, so that all our
saved games are uniform. */
@@ -128,7 +124,7 @@
int morphTics;
unsigned int jumpTics;
unsigned int worldTimer;
-} __compat_doshexen save_player_t;
+} save_player_t;
#if !(defined(VERSION10_WAD) || defined(_DOSSAVE_COMPAT))
/* make sure the struct is of 648 bytes size, so that all our saved
games are uniform: Raven's DOS versions seem to have this struct
@@ -155,7 +151,7 @@
short resetDelay;
short resetDelayCount;
byte textureChange; /* */
-} __compat_doshexen save_floormove_t;
+} save_floormove_t;
#if !(defined(VERSION10_WAD) || defined(_DOSSAVE_COMPAT))
/* make sure the struct is of 72 bytes size, so that all our saved
games are uniform. */
@@ -288,6 +284,8 @@
int vars[MAX_ACS_SCRIPT_VARS];
int32_t ip_idx; /* byte *ip; */
} save_acs_t;
+
+#pragma pack off
#endif /* __SAVE_DEFS */