Skip to content

Commit 968c792

Browse files
committed
Remove packed attr on map nodes
It was causing compiler to access as bytes. This patch makes unpacked struct more obvious.
1 parent 574e91a commit 968c792

File tree

1 file changed

+12
-18
lines changed

1 file changed

+12
-18
lines changed

src/doomdata.h

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -178,24 +178,6 @@ typedef struct
178178
// Indicate a leaf.
179179
#define NF_SUBSECTOR 0x8000
180180

181-
typedef struct
182-
{
183-
// Partition line from (x,y) to x+dx,y+dy)
184-
short x;
185-
short y;
186-
short dx;
187-
short dy;
188-
189-
// Bounding box for each child,
190-
// clip against view frustum.
191-
short bbox[2][4];
192-
193-
// If NF_SUBSECTOR its a subsector,
194-
// else it's a node of another subtree.
195-
unsigned short children[2];
196-
197-
} PACKEDATTR mapnode_t;
198-
199181

200182

201183

@@ -211,7 +193,19 @@ typedef struct
211193
} PACKEDATTR mapthing_t;
212194

213195

196+
// This is used at runtime so not packed.
197+
// compiler uses byte access on packed structs.
214198

199+
typedef struct {
200+
short x; // Partition line from (x,y) to x+dx,y+dy)
201+
short y;
202+
short dx;
203+
short dy;
204+
// Bounding box for each child, clip against view frustum.
205+
short bbox[2][4];
206+
// If NF_SUBSECTOR its a subsector, else it's a node of another subtree.
207+
unsigned short children[2];
208+
} mapnode_t;
215209

216210

217211
#endif // __DOOMDATA__

0 commit comments

Comments
 (0)