Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Moving all the 2D datatypes under one roof, following the example from the recently-surfaced
MxGeometry.h
.Our hope was that the stubborn
GetRectIntersection
function could match higher than single digits with this change. Initial tests have shown that we can get to 100%, but it is rare and dependent on the whims of the compiler. That's why we need the big guns: #1384.Summary:
MxPoint32
,MxSize32
,MxRect32
, andMxRect16
are now housed inmxgeometry.h
instead of their own headers. All files using these structs had their imports corrected.Similarly,
MxRectList
is nowMxRect32List
, also inmxgeometry.h
.We had names for the functions on
MxRect32
that altered the data. These are now replaced by C++operator
functions. e.g.rect_a.Intersect(rect_b)
is nowrect_a &= rect_b
.Modern compilers complained about the templated utility functions in
legoutil.h
. They clash with the ones inmxutilities.h
because these are now used bymxgeometry.h
. The three functions aren't used inlegocarbuildpresenter.cpp
, butlegoutil.h
comes from the 96 source so this may well have been correct. They are excluded with an#ifdef
for now.InfocenterMapEntry
uses the templated structMxRect<MxS32>
directly instead of the subclassMxRect32
. I changedInfocenter::InitializeBitmaps
to use these rects so it matches the beta a little better. It can never fully match because this function was changed further for retail.In
legometerpresenter.h
,MeterRect
is nowMxRect16
. We knew from the beta that there were two classes here, but not why.MxStillPresenter::SetPosition
had a note to try using theMxSize32
andMxPoint32
structures more. I've done that and it now matches 100%.