diff --git a/src/d_datawrap.c b/src/d_datawrap.c
index ff80f726b26bf4c091b05906933f2e197114d934..c5de05dfd0ed1c9d7b2eecdf70f8a17c82d6a738 100644
--- a/src/d_datawrap.c
+++ b/src/d_datawrap.c
@@ -43,6 +43,18 @@ INT16 DW_ReadINT16(DataWrap dw)
 	return READINT16(dw->p);
 }
 
+INT32 DW_ReadINT32(DataWrap dw)
+{
+	CheckEOF(dw, 4);
+	return READINT32(dw->p);
+}
+
+fixed_t DW_ReadFixed(DataWrap dw)
+{
+	CheckEOF(dw, 4);
+	return READFIXED(dw->p);
+}
+
 char *DW_ReadStringn(DataWrap dw, size_t n)
 {
 	char *string = ZZ_Alloc(n+1);
diff --git a/src/d_datawrap.h b/src/d_datawrap.h
index 6bd9c32cd4e269ff517f9cc623ecc8f1bfe8af0e..55090ce64af64240b902e6559fad51b18ea21a57 100644
--- a/src/d_datawrap.h
+++ b/src/d_datawrap.h
@@ -7,13 +7,16 @@ typedef struct DataWrap_s {
 	jmp_buf	*eofjmp;
 } *DataWrap;
 
-UINT8 DW_ReadUINT8(struct DataWrap_s *);
-UINT16 DW_ReadUINT16(struct DataWrap_s *);
-UINT32 DW_ReadUINT32(struct DataWrap_s *);
+UINT8 DW_ReadUINT8(DataWrap);
+UINT16 DW_ReadUINT16(DataWrap);
+UINT32 DW_ReadUINT32(DataWrap);
 
-SINT8 DW_ReadSINT8(struct DataWrap_s *);
-INT16 DW_ReadINT16(struct DataWrap_s *);
+SINT8 DW_ReadSINT8(DataWrap);
+INT16 DW_ReadINT16(DataWrap);
+INT32 DW_ReadINT32(DataWrap);
 
-char *DW_ReadStringn(struct DataWrap_s *, size_t n);
+fixed_t DW_ReadFixed(DataWrap);
+
+char *DW_ReadStringn(DataWrap, size_t n);
 
 DataWrap D_NewDataWrap(const void *data, size_t len, jmp_buf *eofjmp);