mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-24 13:11:33 +00:00
- fixed a potential overflow issue with calculating a portal's origin point.
- fixed: Sector_SetPortal's Eternity translation was not correct. The ZDoom variant allows specifying the plane as part of the portal, Eternity does not. Added a new 'plane' type 3 which just means 'any'.
This commit is contained in:
parent
824801ae6b
commit
111479063f
2 changed files with 7 additions and 6 deletions
|
@ -1125,10 +1125,11 @@ void P_SpawnPortal(line_t *line, int sectortag, int plane, int alpha)
|
|||
lines[i].args[2] == plane &&
|
||||
lines[i].args[3] == 1)
|
||||
{
|
||||
fixed_t x1 = (line->v1->x + line->v2->x) >> 1;
|
||||
fixed_t y1 = (line->v1->y + line->v2->y) >> 1;
|
||||
fixed_t x2 = (lines[i].v1->x + lines[i].v2->x) >> 1;
|
||||
fixed_t y2 = (lines[i].v1->y + lines[i].v2->y) >> 1;
|
||||
// beware of overflows.
|
||||
fixed_t x1 = fixed_t((SQWORD(line->v1->x) + SQWORD(line->v2->x)) >> 1);
|
||||
fixed_t y1 = fixed_t((SQWORD(line->v1->y) + SQWORD(line->v2->y)) >> 1);
|
||||
fixed_t x2 = fixed_t((SQWORD(lines[i].v1->x) + SQWORD(lines[i].v2->x)) >> 1);
|
||||
fixed_t y2 = fixed_t((SQWORD(lines[i].v1->y) + SQWORD(lines[i].v2->y)) >> 1);
|
||||
fixed_t alpha = Scale (lines[i].args[4], OPAQUE, 255);
|
||||
|
||||
AStackPoint *anchor = Spawn<AStackPoint>(x1, y1, 0, NO_REPLACE);
|
||||
|
@ -1155,7 +1156,7 @@ void P_SpawnPortal(line_t *line, int sectortag, int plane, int alpha)
|
|||
// This must be done here to ensure that it gets done only after the portal is set up
|
||||
if (lines[j].special == Sector_SetPortal &&
|
||||
lines[j].args[1] == 1 &&
|
||||
lines[j].args[2] == plane &&
|
||||
(lines[j].args[2] == plane || lines[j].args[2] == 3) &&
|
||||
lines[j].args[3] == sectortag)
|
||||
{
|
||||
if (lines[j].args[0] == 0)
|
||||
|
|
|
@ -170,7 +170,7 @@ define Unsupported (0)
|
|||
384 = 0, Static_Init(0, 3, 0, 10) // "Attach_MirrorCeilingToControl"
|
||||
|
||||
// Attach tagged portal to front sector
|
||||
385 = 0, Sector_SetPortal(0, 1, 2, tag) // "Apply_PortalToFrontsector"
|
||||
385 = 0, Sector_SetPortal(0, 1, 3, tag) // "Apply_PortalToFrontsector"
|
||||
|
||||
// Slopes!
|
||||
386 = 0, Plane_Align (1, 0) // "Slope_FrontsectorFloor"
|
||||
|
|
Loading…
Reference in a new issue