summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon Howard2008-10-24 17:28:37 +0000
committerSimon Howard2008-10-24 17:28:37 +0000
commit80eacd13f9d4e7111893de511d0b5ecd5402ee74 (patch)
tree37d7cae2e314db08b32ed80062ca5a8235353332 /src
parent8022c5cc09ecec5623449a2040672c1e331ac75e (diff)
downloadchocolate-doom-80eacd13f9d4e7111893de511d0b5ecd5402ee74.tar.gz
chocolate-doom-80eacd13f9d4e7111893de511d0b5ecd5402ee74.tar.bz2
chocolate-doom-80eacd13f9d4e7111893de511d0b5ecd5402ee74.zip
Fix Heretic/Hexen implementations of P_LoadBlockmap to not modify the
lump. Subversion-branch: /branches/raven-branch Subversion-revision: 1362
Diffstat (limited to 'src')
-rw-r--r--src/heretic/p_setup.c10
-rw-r--r--src/hexen/p_setup.c15
2 files changed, 20 insertions, 5 deletions
diff --git a/src/heretic/p_setup.c b/src/heretic/p_setup.c
index d27250c4..8e93fe04 100644
--- a/src/heretic/p_setup.c
+++ b/src/heretic/p_setup.c
@@ -419,10 +419,16 @@ void P_LoadSideDefs(int lump)
void P_LoadBlockMap(int lump)
{
int i, count;
+ int lumplen;
- blockmaplump = W_CacheLumpNum(lump, PU_LEVEL);
+ lumplen = W_LumpLength(lump);
+
+ blockmaplump = Z_Malloc(lumplen, PU_LEVEL, NULL);
blockmap = blockmaplump + 4;
- count = W_LumpLength(lump) / 2;
+
+ // Swap all short integers to native byte ordering:
+
+ count = lumplen / 2;
for (i = 0; i < count; i++)
blockmaplump[i] = SHORT(blockmaplump[i]);
diff --git a/src/hexen/p_setup.c b/src/hexen/p_setup.c
index 695c262e..653080e2 100644
--- a/src/hexen/p_setup.c
+++ b/src/hexen/p_setup.c
@@ -533,10 +533,18 @@ void P_LoadSideDefs(int lump)
void P_LoadBlockMap(int lump)
{
int i, count;
+ int lumplen;
- blockmaplump = W_CacheLumpNum(lump, PU_LEVEL);
+ lumplen = W_LumpLength(lump);
+
+ blockmaplump = Z_Malloc(lumplen, PU_LEVEL, NULL);
+ W_ReadLump(lump, blockmaplump);
blockmap = blockmaplump + 4;
- count = W_LumpLength(lump) / 2;
+
+ // Swap all short integers to native byte ordering:
+
+ count = lumplen / 2;
+
for (i = 0; i < count; i++)
blockmaplump[i] = SHORT(blockmaplump[i]);
@@ -545,7 +553,8 @@ void P_LoadBlockMap(int lump)
bmapwidth = blockmaplump[2];
bmapheight = blockmaplump[3];
-// clear out mobj chains
+ // clear out mobj chains
+
count = sizeof(*blocklinks) * bmapwidth * bmapheight;
blocklinks = Z_Malloc(count, PU_LEVEL, 0);
memset(blocklinks, 0, count);