mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-27 22:42:57 +00:00
- only return DWORD aligned addresses in openings because the 3D floor code stores floating point values in there which cannot be accessed on platforms with strict alignment rules.
This commit is contained in:
parent
220255e6a4
commit
0726a88ab9
1 changed files with 2 additions and 0 deletions
|
@ -2352,6 +2352,7 @@ void R_CheckDrawSegs ()
|
|||
ptrdiff_t R_NewOpening (ptrdiff_t len)
|
||||
{
|
||||
ptrdiff_t res = lastopening;
|
||||
len = (len + 1) & ~1; // only return DWORD aligned addresses because some code stores fixed_t's and floats in openings...
|
||||
lastopening += len;
|
||||
if ((size_t)lastopening > maxopenings)
|
||||
{
|
||||
|
@ -2512,6 +2513,7 @@ void R_StoreWallRange (int start, int stop)
|
|||
if(sidedef->GetTexture(side_t::mid).isValid())
|
||||
ds_p->bFakeBoundary |= 4; // it is also mid texture
|
||||
|
||||
// note: This should never have used the openings array to store its data!
|
||||
ds_p->maskedtexturecol = R_NewOpening ((stop - start) * 2);
|
||||
ds_p->swall = R_NewOpening ((stop - start) * 2);
|
||||
|
||||
|
|
Loading…
Reference in a new issue