diff options
author | Simon Howard | 2008-10-24 17:28:37 +0000 |
---|---|---|
committer | Simon Howard | 2008-10-24 17:28:37 +0000 |
commit | 80eacd13f9d4e7111893de511d0b5ecd5402ee74 (patch) | |
tree | 37d7cae2e314db08b32ed80062ca5a8235353332 | |
parent | 8022c5cc09ecec5623449a2040672c1e331ac75e (diff) | |
download | chocolate-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
-rw-r--r-- | src/heretic/p_setup.c | 10 | ||||
-rw-r--r-- | src/hexen/p_setup.c | 15 |
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); |